C++归并排序递归写法
生活随笔
收集整理的這篇文章主要介紹了
C++归并排序递归写法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
歸并排序的核心:有序子列的歸并
兩個有序子列,三個指針
A子列,指針Aptr指向首地址
B子列,指針Bptr指向首地址
Tmp數(shù)組,指針Cptr首地址
比較*Aptr 和*Bptr的大小,小的放入Tmp數(shù)組,然后指針后移,大概的思路如此。
Tmp數(shù)組如下變化
整體代碼如下
排序結果
before Merge_sort
3
5
6
0
6
9
0
2
9
2
after Merge_sort
0
0
2
2
3
5
6
6
9
9
補充知識
malloc函數(shù)
malloc 函數(shù)返回的是 void * 類型,如果寫成:p = malloc (sizeof(int)); 則程序無法通過編譯,報錯:“不能將 void* 賦值給 int * 類型變量”。所以必須通過 (int *) 來將強制轉換。
使用后delete掉
包含在頭文件cstdlib中
隨機數(shù)函數(shù)
srand((unsigned)time(NULL))
產生0-9之間的隨機數(shù)0+rand()*10
srand函數(shù)包含在頭文件ctime中
總結
以上是生活随笔為你收集整理的C++归并排序递归写法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 全好全拆床垫承托力怎么样?
- 下一篇: C++STL之next_permutat