六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 38|回复: 0

排序-----堆排序2

[复制链接]

升级  12.67%

21

主题

21

主题

21

主题

秀才

Rank: 2

积分
69
 楼主| 发表于 2013-1-26 12:36:03 | 显示全部楼层 |阅读模式
//-------堆排序---------//void HeapAdjust(int *a, int i, int Length){int Child;int Temp;for (Temp = a[i]; 2 * i + 1 < Length; i = Child){Child = 2 * i + 1;if (Child < Length - 1 && a[Child + 1] > a[Child]){++Child;}if (Temp < a[Child]){a[i] = a[Child];}else{break;}a[Child] = Temp;}}void HeapSort(int *a, int length){int i;int temp;for (i = length / 2 - 1; i >= 0; --i){HeapAdjust(a, i, length);}for (i = length - 1; i > 0; --i){temp = a[0];a[0] = a[i];a[i] = temp;HeapAdjust(a, 0, i);} }int main()   {       int *a;       int i, length;       int temp = 0;      printf("input :");       scanf("%d",&length);    a = (int*) malloc((length+1) * sizeof(int));      printf("input %d Numble :", length);       for(i = 0; i < length; i++)       {           scanf(" %d", &a[i]);       }         HeapSort(a,length);      for(i = 0; i < length; i++)   {        printf("%d ",a[i]);  }    printf("\n");   return 1;} 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表