堆排序——C語言

關於堆不做過多解釋(要說的話有點多....)要學堆排序的話對堆肯定有一定的理解。 首先從堆頂開始,自左向右依次標號的話(0..n),我們可以發現父子節點的關係 (首標爲0時)i爲父;則左子爲2i+1;右子爲2i+2; 要實現堆排序, 1:將無序堆變成有序。 2:堆頂元素與堆尾元素交換後,去掉堆尾(此時堆尾最大或者最小,不需要再調整),調整剩下的(因爲前面交換首尾,所以堆得有序結構改變了,需要重新調
相關文章
相關標籤/搜索