三峡大学计算机与信息学院数据结构课件 第9章.pptVIP

  • 6
  • 0
  • 约1.54万字
  • 约 93页
  • 2019-05-13 发布于香港
  • 举报

三峡大学计算机与信息学院数据结构课件 第9章.ppt

图9.10 完整的堆排序过程 堆排序的算法如下: void HeapSort(RecordType r[], int length) /* 对r[1..n]进行堆排序, 执行本算法后, r中记录按关键字由大到小有序排列 */  { crt-heap( r, length);  n= length; for ( i=n ; i= 2 ; --i)  { b=r[1]; /* 将堆顶记录和堆中的最后一个记录互换 */ r[1]= r[i]  r[i]=b;  sift(r, 1, i-1); /* 进行调整, 使r[1..i-1]变成堆 */  } } /* HeapSort */ 【算法9.11 堆排序算法】 堆排序的时间主要耗费在建初始堆和调整建新堆时进行的反复“筛选”上。对深度为k的堆,筛选算法中进行的关键字的比较次数至多为2(k-1)次, 则在建含n个元素、 深度为h的堆时, 总共进行的关键字比较次数不超过4n。另外,n个结点的完全二叉树的深度为[log2n]+1,则调整建新堆时调用sift过程n-1次总共进行的比较次数不超过: 2([log2(n-1)]+[log2(n-2)]+…+[log22])2n[log2n] 因此,堆排

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档