算法设计与分析第章.ppt

算法设计与分析第章

templateclass Type void insertion_sort(Type *a, int n) { Type key; // cost times for (int i = 1; i n; i++){ // c1 n key=a[i]; // c2 n-1 int j=i-1; // c3 n-1 while( j=0 a[j]key ){ // c4 sum of ti a[j+1]=a[j]; // c5 sum of (ti-1) j--; // c6 sum og (ti-1) } a[j+1]=key; // c7 n-1 } } 在最好情况下,ti=1, for 1 ? i n; 在最坏情况下,ti ? i+1, for 1 ? i n; 对于输入数据a[i]=n-i,i=0,1,…,n-1,算法insertion_sort 达到其最坏情形。因此, 由此可见,Tmax(n)= ?(n2) 最优算法 问题的计算时间下界为?(f(n)),则计算时间复杂性为O(f(n))的算法是最优算法。 例如,排序问题的计算时间下界为?(nlogn),计算时间复杂性为O(nlogn)的排序算法是最优算法。 堆排序算法是最优算法。 递归算法复杂性分析 int factorial(int n) { if (n == 0) return 1; return n*factorial(n-1); } * * * * * * * * * * * * * 计算机理论研究看到的是计算机的未来; 计算机应用研究看到的是计算机的明天; 计算机的应用看到的却是计算机的过去。 哥德尔的不完全性定理。这时的图灵正在剑桥求学,他也同样为此问题陷入了困境。 1936年,图灵作出了他一生最重要的科学贡献,他在其著名的论文《论可计算数在判定问题中的应用》一文中,以布尔代数为基础,将逻辑中的任意命题(即可用数学符号)用一种通用的机器来表示和完成,并能按照一定的规则推导出结论。这篇论文被誉为现代计算机原理开山之作,它描述了一种假想的可实现通用计算的机器,后人称之为“图灵机”。 这种假想的机器由一个控制器和一个两端无限长的工作带组成。工作带被划分成一个个大小相同的方格,方格内记载着给定字母表上的符号。控制器带有读写头并且能在工作带上按要求左右移动。随着控制器的移动,其上的读写头可读出方格上的符号,也能改写方格上的符号。这种机器能进行多种运算并可用于证明一些著名的定理。这是最早给出的通用计算机的模型。图灵还从理论上证明了这种假想机的可能性。尽管图灵机当时还只是一纸空文,但其思想奠定了整个现代计算机发展的理论基础。 图灵预言,总有一天计算机可通过编程获得能与人类竞争的智能。1950年10月,图灵发表了题为《 机器能思考吗?》的论文,在计算机科学界引起巨大震撼,为人工智能学的创立奠定了基础。图灵还设计了著名的“模仿游戏试验”,后人称之为“图灵测试”。该实验把被提问的一个人和一台计算机分别隔离在两间屋子,让提问者用人和计算机都能接受的方式来进行问答测试。如果提问者分不清回答者是人还是机器,那就证明计算机已具备人的智能(1993年美国波士顿计算机博物馆举行的著名的“图灵测试” 充分验证了图灵的预言)。 * * 图灵给出了计算机的数学模型“图灵机”,冯诺依曼给出了计算机的物理体系结构“诺依曼机”。简单的讲,就是对于图灵的数学模型中的各个元素,冯诺依曼给出了物理器件来表示。例如:图灵机的纸带,诺依曼机就用“存储器”来代表。图灵机的读写头,诺依曼机就用“输入输出设备”来代表。 现代计算机的基本概念源于图灵机,现代计算机的结构源于“诺依曼机”的构造原理 * * * 时刻 9 * 时刻 10 * 时刻 11 * 停机 接受 时刻12 P类与N

文档评论(0)

1亿VIP精品文档

相关文档