实现快速排序算法和堆排序算法

时间:2016-07-08 06:19:38
【文件属性】:

文件名称:实现快速排序算法和堆排序算法

文件大小:1KB

文件格式:CPP

更新时间:2016-07-08 06:19:38

堆排序

// 堆排序 #include typedef int InfoType; // 定义其它数据项的类型 #include "compare.h" #include "sort.h" typedef SqList HeapType; // 堆采用顺序表存储表示 void HeapAdjust(HeapType &H,int s,int m) // 算法10.10 { // 已知H.r[s..m]中记录的关键字除H.r[s].key之外均满足堆的定义,本函数 // 调整H.r[s]的关键字,使H.r[s..m]成为一个大顶堆(对其中记录的关键字而言) RcdType rc; rc=H.r[s]; for(int j=2*s;j<=m;j*=2){ if(j0;--i) HeapAdjust(H,i,H.length); for(i=H.length;i>1;--i){ t=H.r[1]; H.r[1]=H.r[i]; H.r[i]=t; // H.r[1]←→H.r[i]; HeapAdjust(H,1,i-1); } } void print(HeapType H) { int i; for(i=1;i<=H.length;i++) printf("(%d,%d)",H.r[i].key,H.r[i].otherinfo); printf("\n"); } #define N 8 int main() { RcdType d[N]={{49,1},{38,2},{65,3},{97,4},{76,5},{13,6},{27,7},{49,8}}; HeapType h; int i; for(i=0;i


网友评论