[問題] heap sort

看板C_and_CPP (C/C++)作者 (江媽)時間15年前 (2011/04/11 18:26), 編輯推噓4(404)
留言8則, 4人參與, 最新討論串1/1
int a=1; void createHeap(int number[]){ int heap[MAX+1] = {-1}; int i; for(i = 1; i <= a; i++) { heap[i] = number[i]; int s = i; int p = i / 2; while(s >= 2 && heap[p] > heap[s]) { SWAP(heap[p], heap[s]); s = p; p = s / 2; } } int j; for(j = 1; j <= a; j++) number[j] = heap[j]; } void heapSort(int number[]) { int m = a; while(m > 1) { SWAP(number[1], number[m]); m--; int p = 1; int s = 2 * p; while(s <= m) { if(s < m && number[s+1] < number[s]) s++; if(number[p] <= number[s]) break; SWAP(number[p], number[s]); p = s; s = 2 * p; } } } 有人可以幫忙注解一下 或是更精簡嗎? 感謝><" -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.242.12.19

04/11 19:03, , 1F
演算法的書先看懂heap sort原理 應該就會了
04/11 19:03, 1F

04/11 19:43, , 2F
heapSort on Wiki : http://0rz.tw/MUVJW
04/11 19:43, 2F

04/11 19:43, , 3F
推一樓。不少 演算或 或 資料結構 的書都有講解。
04/11 19:43, 3F

04/11 19:44, , 4F
看完書之後,用紙和筆追蹤幾個例子;
04/11 19:44, 4F

04/11 19:45, , 5F
試著寫出上面的 Code。在反覆摸索的過程中就會領悟囉~
04/11 19:45, 5F

04/11 19:47, , 6F
heapSort 的視覺畫動畫: http://0rz.tw/kjyf7
04/11 19:47, 6F

04/11 22:59, , 7F
看攏摩!!
04/11 22:59, 7F

04/12 03:07, , 8F
你自己難道沒有意見嗎?
04/12 03:07, 8F
文章代碼(AID): #1DejSvPk (C_and_CPP)
文章代碼(AID): #1DejSvPk (C_and_CPP)