[問題] heap sort
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
04/11 19:03, 1F
推
04/11 19:43, , 2F
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
04/11 19:45, 5F
推
04/11 19:47, , 6F
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
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章