中国小虫 发表于 2013-1-26 12:36:03

排序-----堆排序2

//-------堆排序---------//void HeapAdjust(int *a, int i, int Length){int Child;int Temp;for (Temp = a; 2 * i + 1 < Length; i = Child){Child = 2 * i + 1;if (Child < Length - 1 && a > a){++Child;}if (Temp < a){a = a;}else{break;}a = 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;a = a;a = 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);       }         HeapSort(a,length);      for(i = 0; i < length; i++)   {      printf("%d ",a);}    printf("\n");   return 1;} 
页: [1]
查看完整版本: 排序-----堆排序2