数据结构堆排序c,,实现报告.docVIP

  • 12
  • 0
  • 约5.88千字
  • 约 17页
  • 2017-05-21 发布于贵州
  • 举报
数据结构堆排序c,,实现报告

数据结构堆排序c,,实现报告 C语言版数据结构 堆排序 1.堆排序 详细设计 #include stdio.h #include stdlib.h #include time.h #defineMax_Size5000 #define TRUE 1 #define FALSE 0 typedef int KeyType; typedef int OtherType; typedef struct { KeyType key; OtherType other_data; }RecordType; voidsift(RecordType r[], int k, int m)//筛选算法 /*假设r[k..m]是以r[k]为根的完全二叉树,且分别以r[2k]和r[2k+1]为根的左、右子树为大根堆,调整r[k],使整个序列r[k..m]满足堆的性质*/ { RecordType t; int i,j,x; bool finished; finished=FALSE; t=r[k];//暂存根记录 x=r[k].key; i=k; j=2*i; while(j=m amp;amp; !finished) { if(jm amp;amp; r[j].key r[j+1].key )//若存在右子树,且右子树根的关键字大,则沿右分支筛选 j=j+1; if(x=r[j].key ) fin

文档评论(0)

1亿VIP精品文档

相关文档