文档介绍:
1、编写程序实现归并算法和快速排序算法参见后附程序动手编程运行一下第三章分治算法****题 3、讨论归并排序算法的空间复杂性。 2、用长为 100 、 200 、 300 、 400 、 500 、 600 、 700 、 800 、 900 、 1000 的 10 个数组的排列来统计这两种算法的时间复杂性。大部分的情况是快速排序算法要比归并算法快一些 4、说明算法 PartSelect 的时间复杂性为( ) O n 提示:假定数组中的元素各不相同,且第一次划分时划分元素 v 是第 i 小元素的概率为 1 / n 。因为 Partition 后的 case 语句所要求的时间都是 O(n) ,所以,存在常数 c, 使得算法 PartSelect 的平均时间复杂度)(nC kA))1()(( 1)( 1???????????? kinik kA ikA nC令)),(( max )(nCnR kAk?),1(RC?试证明.4)( cn nR?取可以表示为))1()(( 1)( 1???????????? kinik kA ikA nC k 证明:记表示在数组 A的n个元素中寻找第 k小元素的平均时间复杂度,因涉及 case 的时间复杂度是,故存在常数 c,使得算法 PartSelect 的平均时间复杂度满足)(nC kA)(nO)(nC kA下用第二数学归纳法证明.4)1(4/c ),1(1)?????即可满足则保证取时, 当 2)设对任意 m
内容来自淘豆网www.taodocs.com转载请标明出处.