第七图,查找,排序导论.pptVIP

  • 1
  • 0
  • 约1.78万字
  • 约 76页
  • 2016-08-13 发布于湖北
  • 举报
* 算法分析 设待排序对象个数为 n, 则该算法的主程序执行n-1趟。 排序码比较次数和对象移动次数与对象排序码的初始排列有关。 最好情况下, 排序前对象已按排序码从小到大有序, 每趟只需与前面有序对象序列的最后一个对象比较1次, 总的排序 码比较次数为 n-1, 不需移动记录。直接插入排序的时间复杂度为O(n2)。 * 最坏情况下,待排记录按关键字非递增有序排列(逆序)时,第 i 趟时第 i+1 个对象必须与前面 i 个对象都做排序码比较, 并且每做1次比较就要做1次数据移动。总比较次数为(n+2)(n-1)/2次,总移动次数为(n+4)(n-1)/2。 在平均情况下的排序码比较次数和对象移动次数约为 n2/4。因此,直接插入排序的时间复杂度为 O(n2)。 直接插入排序是一种稳定的排序方法。 * 折半插入排序 (Binary Insertsort) 基本思想 既然每个要插入记录之前的纪录已经按关键字有序排列,在查找插入位置时就没有必要逐个关键字比较,可以使用折半查找来实现。由此进行的插入排序称之为折半插入排序。 * void BInsertSort (SqList L){ for (i=2;i=L.length;++i){ L.r[0]=L.r[i]; low=1;high=i-1; //查找范围由1到i-1 while(low=high){ m=(

文档评论(0)

1亿VIP精品文档

相关文档