C语言实现堆排序代码

C语言实现堆排序代码,第1张

概述C语言实现堆排序代码

下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。

内存溢出小编现在分享给大家,也给大家做个参考。

voID heapsort(int arr[],unsigned int N) {     unsigned int n = N,i = n/2,parent,child;     int t;        for (;;) { /* Loops until arr is sorted */         if (i > 0) { /* First stage - Sorting the heap */             i--;           /* Save its index to i */             t = arr[i];    /* Save parent value to t */         } else {     /* Second stage - Extracting elements in-place */             n--;           /* Make the new heap smaller */             if (n == 0) return; /* When the heap is empty,we are done */             t = arr[n];    /* Save last value (it will be overwritten) */             arr[n] = arr[0]; /* Save largest value at the end of arr */         }            parent = i; /* We will start pushing down t from parent */         child = i*2 + 1; /* parent's left child */            /* Sift operation - pushing the value of t down the heap */         while (child < n) {             if (child + 1 < n  &&  arr[child + 1] > arr[child]) {                 child++; /* Choose the largest child */             }             if (arr[child] > t) { /* If any child is bigger than the parent */                 arr[parent] = arr[child]; /* Move the largest child up */                 parent = child; /* Move parent pointer to this child */                 //child = parent*2-1; /* Find the next child */                 child = parent*2+1; /* the prevIoUs line is wrong*/             } else {                 break; /* t's place is found */             }         }         arr[parent] = t; /* We save t in the heap */     } } 

以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

总结

以上是内存溢出为你收集整理的C语言实现堆排序代码全部内容,希望文章能够帮你解决C语言实现堆排序代码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1232315.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存