基於比較的各種排序演算法的實現

2021-06-14 15:11:14 字數 421 閱讀 7554

由於把作業理解錯了,就實現了一下各種排序的演算法,不過都是基於比較排序的,分治思想的演算法寫起來還是有點難度的,有時間補上counting sort等複雜度能達到線性的排序演算法,各種經典的演算法網上都有介紹,就不囉嗦了,主要總結一下自己再實際編碼中遇到的問題~

1. 參考偽碼寫的,實現起來難免有問題,比如折半插入排序找到時不要忘記break。其實折半插入就是在插入

排序的基礎上,由於之前的資料已經排序完畢,則查詢插入點時不必線性掃瞄,採用折半查詢的方式找到插入點即可。

2. mergesort等遞迴出現死迴圈,不要忘記加上i

3. mergesort排序錯誤,出現0,說明輔助陣列b有些值沒有填上,使用了初始值0。經過檢查,發現是merge過程中,判斷條件low

程式可能有bug,畢竟測試資料很少,有條件的可以測測百萬級的資料的執行速度,歡迎反饋交流~

各種排序演算法的比較

穩定的排序演算法有 直接插入,冒泡,歸併,基數排序。一.快速排序 快排的三個步驟 1.選取樞紐元,一般用三數中值法,即求得left,center,right的中位數 不要用第乙個數,如果原始資料是倒序,效率將會很低 2.根據樞紐元把輸入資料劃分成為兩部分,左半部分的數比樞紐元小,右半部分比樞紐元大。...

各種排序演算法的比較

排序問題的解決方案是演算法問題當中最多的,常見的有插入排序,選擇排序,氣泡排序,歸併排序,快速排序,堆排序等,下面將對不同的排序演算法進行分析。假設均為實現從小到大排序,計算空間複雜度時,不考慮原本儲存元素的空間,只考慮實現演算法需要的額外空間。插入排序的基本思想是 從待排序的元素中選出乙個,插入已...

各種排序演算法的比較

各種排序演算法的比較 1.穩定性比較 插入排序 氣泡排序 二叉樹排序 二路歸併排序及其他線形排序是穩定的 選擇排序 希爾排序 快速排序 堆排序是不穩定的 2.時間複雜性比較 插入排序 氣泡排序 選擇排序的時間複雜性為o n2 其它非線形排序的時間複雜性為o nlog2n 線形排序的時間複雜性為o n...