全球旧事资料 分类
1堆排序详细设计i
cludestdiohi
cludestdlibhi
cludetimehdefi
eMax_Size5000defi
eTRUE1defi
eFALSE0typedefi
tKeyTypetypedefi
tOtherTypetypedefstructKeyTypekeyOtherTypeother_dataRecordTypevoidsiftRecordTyperi
tki
tm筛选算法假设rkm是以rk为根的完全二叉树,且分别以r2k和r2k1为根的左、右子树为大根堆,调整rk,使整个序列rkm满足堆的性质RecordTypeti
tijxboolfi
ishedfi
ishedFALSEtrk暂存根记录xrkkeyikj2iwhilejmfi
ishedifjmrjkeyrj1key若存在右子树且右子树根的关键字大则沿右分支筛选jj1ifxrjkeyfi
ishedTRUE筛选完毕else继续筛选rirjijj2iritrk填入到当前位置voidcrt_heapRecordTyperi
tle
gth
f对记录数组r建堆,le
gth为数组的长度i
t
i
le
gthfori
2i1i从第i个位置开始筛选建堆siftri
voidHeapSortRecordTyperi
tle
gth对r1
进行堆排序,执行本算法后,r中记录按关键字由小到大有序排列crt_heaprle
gthRecordTypeti
t
i
le
gthfori
i2i将堆顶记录和堆中的最后一个记录互换tr1r1riritsiftr1i1使r1i1变成堆HeapSortvoidmai
i
tiRecordTyperMax_Sizei
tle
pri
tf
好听全球资料 返回顶部