塗鴉 草稿 堆排序(1)

2021-08-02 07:39:46 字數 2859 閱讀 3528

晚上沒啥事,隨手練習寫了下最簡略版本的堆排序,當然,實際上還可以有很多優化~注釋也沒寫…

這裡是草稿~沒事多寫寫,多練練~孰能生巧。

完全版本的改天整理一下再專門寫篇blog來坐下說明,額,這個**沒啥注釋,將就看吧….

#include 

#include

#include

void print_arr(int

*arr, int size)

void siftup(int

*arr, int

pos)

}void siftdown(int

*arr, int nowpos, int maxpos)

}}void createheap(int

*arr, int size, int

*p)}

void heapsort(int

*arr, int size)

//memcpy(arr, p, sizeof(int) * size);

free(p);

p = null;

}int main()

; printf("original:\n");

print_arr(arr, 14);

heapsort(arr, 14);

printf("sorted:\n");

print_arr(arr, 14);

return

0;}

original:12

512717

2519

3699

2228

4692

after cerateheap:12

512717

2519

3699

2228

4692

min is

1before siftdown:922

512717

2519

3699

2228

46after siftdown:27

5122217

2519

3699

9228

46 min is

2before siftdown:467

5122217

2519

3699

9228

after siftdown:57

1712

2228

2519

3699

9246

min is

5before siftdown:467

1712

2228

2519

3699

92after siftdown:712

1719

2228

2546

3699

92 min is

7before siftdown:

9212

1719

2228

2546

3699

after siftdown:

1219

1736

2228

2546

9299

min is

12before siftdown:

9919

1736

2228

2546

92after siftdown:

1719

2536

2228

9946

92 min is

17before siftdown:

9219

2536

2228

9946

after siftdown:

1922

2536

9228

9946

min is

19before siftdown:

4622

2536

9228

99after siftdown:

2236

2546

9228

99 min is

22before siftdown:

9936

2546

9228

after siftdown:

2536

2846

9299

min is

25before siftdown:

9936

2846

92after siftdown:

2836

9946

92 min is

28before siftdown:

9236

9946

after siftdown:

3646

9992

min is

36before siftdown:

9246

99after siftdown:

4692

99 min is

46before siftdown:

9992

after siftdown:

9299

min is

92before siftdown:

99after siftdown:

99 min is

99before siftdown:

after siftdown:

sorted:12

571217

1922

2528

3646

9299

over!改天再多寫些,哈哈~

塗鴉 草稿 堆排序(2)

昨天晚上做了個小根堆,從小到大排序。剛剛吃完午飯,沒事幹,就做了個大根堆,從大到小排序,練習練習 不要看昨天的,憑感覺來,直接coding。include include include void print arr int arr,int size printf n void siftdown i...

堆排序 堆排序優化 索引堆排序

堆排序 堆排序優化 索引堆排序 注 堆排序 索引堆排序 都是不穩定的排序。注 索引最大堆排序有誤!有沒有大神可以指點一二?1 堆 所有元素 都從索引0開始 父親結點索引 i 左孩子結點索引 2i 1 右孩子結點索引 2i 2 左後乙個非葉子結點索引 n 1 2 用於構建堆,從最後乙個非葉子結點索引開...

堆排序 堆排序優化 索引堆排序

堆排序 堆排序優化 索引堆排序 注 堆排序 索引堆排序 都是不穩定的排序。注 索引最大堆排序有誤!有沒有大神可以指點一二?1 堆 所有元素 都從索引0開始 父親結點索引 i 左孩子結點索引 2i 1 右孩子結點索引 2i 2 左後乙個非葉子結點索引 n 1 2 用於構建堆,從最後乙個非葉子結點索引開...