上一页 1 ··· 5 6 7 8 9 10 11 12 13 下一页
摘要: 归并排序算法采用的是分治算法,即把两个(或两个以上)有序表合并成一个新的有序表,即把待排序的序列分成若干个子序列,每个子序列都是有序的,然后把有序子序列合并成整体有序序列,这个过程也称为2-路归并.注意:归并排序的一种稳定排序,即相等元素的顺序不会改变. 归并排序之递归实现: 归并排序时间复杂度分析 阅读全文
posted @ 2017-08-07 22:18 Allen101 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 简单选择排序没有把每一趟的比较结果保存下来,堆排序做到了在每次选择到最小记录的同时,根据比较结果对其他的记录做出相应的调整。 完全二叉树的某个结点到根结点的距离为;向下取整 [logi]+1。 堆排序的过程 阅读全文
posted @ 2017-08-07 16:15 Allen101 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 增量的选取很关键,最好的情况下时间复杂度可达到O(n^(3/2)),要好于直接排序的O(n^2).希尔排序中记录是跳跃式的移动,所以希尔排序不是稳定的排序算法。意义:突破了慢速排序的时代(超越了O(n^2)). 阅读全文
posted @ 2017-08-07 11:30 Allen101 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 算法中引进的附加记录R[0]称监视哨或哨兵(Sentinel)。 哨兵有两个作用: ① 进人查找(插入位置)循环之前,它保存了R[i]的副本,使不致于因记录后移而丢失R[i]的内容; ② 它的主要作用是:在查找循环中"监视"下标变量j是否越界。一旦越界(即j=0),因为R[0].可以和自己比较,循环 阅读全文
posted @ 2017-08-06 22:28 Allen101 阅读(456) 评论(0) 推荐(0) 编辑
摘要: 比较次数依然是n(n-1)/2,但交换次数最差的时候是(n-1); 时间复杂度O(n^2) 阅读全文
posted @ 2017-08-06 21:29 Allen101 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 9.3.3 最好情况比较n-1次,最坏比较n(n-1)/2次,并做同等数量级的交换。 时间复杂度O(n^2); 阅读全文
posted @ 2017-08-06 20:55 Allen101 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 10.17写一函数,实现两个字符串的比较。即自己写一个strcmp函数,函数原型为: int strcmp(char * p1,char * p2) 设p1指向字符串s1,p2指向字符串s2。要求:当s1=s2时,返回值为0。当s1≠s2时,返回它们两者的第一个不同字符的ASCII码差值(如”BOY 阅读全文
posted @ 2017-08-03 21:26 Allen101 阅读(2119) 评论(0) 推荐(0) 编辑
摘要: 10.16输入一个字符串,内有数字和非数字字符,如: a123x456 17960? 302tab5876 将其中连续的数字作为一个整数,依次存放到一数组num中。例如123放在num[0]中,456放在num[1]中……统计共有多少个整数,并输出这些数。 结果: 阅读全文
posted @ 2017-08-03 19:31 Allen101 阅读(4348) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 下一页