版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、精品文檔2016全新精品資料-全新公文范文-全程指導(dǎo)寫作-獨(dú)家原創(chuàng) / 8各種排序方法復(fù)雜度總結(jié)在C中,排序算法是最基本最常用的算法,不同的排序 算法在不同的場景或應(yīng)用中會有不同的表現(xiàn),接下來小編搜 集了各種排序方法復(fù)雜度總結(jié),歡迎查看。一、冒泡排序主要思路是:通過交換相鄰的兩個數(shù)變成小數(shù)在前大數(shù)在后,這樣每次遍歷后,最大的數(shù)就“沉”到最后面了。重復(fù)N次即可以使數(shù)組有序。代碼實(shí)現(xiàn)void bubble_sort ( int arr , int len )for (int i = 0; i for (intj = len 1; j = i; j )if ( arrj int temp = arr
2、j;arrj = arrj 1;arrj 1 = temp;冒泡排序改進(jìn)1:在某次遍歷中,如果沒有數(shù)據(jù)交換,說明整個數(shù)組已經(jīng) 有序,因此通過設(shè)置標(biāo)志位來記錄此次遍歷有無數(shù)據(jù)交換就 可以判斷是否要繼續(xù)循環(huán)。冒泡排序改進(jìn)2:記錄某次遍歷時最后發(fā)生數(shù)據(jù)交換的位置,這個位置之 后的數(shù)據(jù)顯然已經(jīng)有序。因此設(shè)置標(biāo)志位記錄每次遍歷中最 后發(fā)生數(shù)據(jù)交換的位置可以確定下次循環(huán)的范圍。二、直接插入排序主要思路是:每次將一個待排序的數(shù)組元素,插入到前面已排序的序 列中這個元素應(yīng)該在的位置,直到全部數(shù)據(jù)插入完成。類似 撲克牌洗牌過程。代碼實(shí)現(xiàn)void _sort( int arr, int len )for(int
3、i = 1; i int j =:i 1;int k :=arri;while ( j 1 & k arrj + 1 = arrj;arrj + 1 = k;三、直接選擇排序主要思路是:數(shù)組分成有序區(qū)和無序區(qū),初始時整個數(shù)組都是無序 區(qū),每次遍歷都從無序區(qū)選擇一個最小的元素直接放在有序 區(qū)最后,直到排序完成。代碼實(shí)現(xiàn)void select_sort( int arr , int len )for (int i = 0; i int index = i;for ( int j = i + 1; j if ( arrj index = j;if ( index ! = i )int temp =
4、arri;arri = arrindex;arrindex = temp;四、快速排序主要思路是:“挖坑填數(shù)+分治法”,首先令i = L;j = R ;將ai 挖出形成打一個坑,稱ai為基準(zhǔn)數(shù)。然后j從后向前找到一個比基準(zhǔn)數(shù)小的數(shù),挖出來填到ai的坑中,這樣aj就形成了一個新的坑,再 i+從前向后找到一個比基準(zhǔn) 數(shù)大的數(shù)填到aj坑中。重復(fù)進(jìn)行這種挖坑填數(shù),直到 i = j。這時ai形成了一個新的坑,將基數(shù)填到ai坑中,這樣i之前的數(shù)都比基準(zhǔn)數(shù)小,i之后的數(shù)都比基準(zhǔn)數(shù)大。因 此將數(shù)組分成兩部分再分別重復(fù)上述步驟就完成了排序。代碼實(shí)現(xiàn)void quick_sort ( int arr , int
5、left , int right )if(leftint i =left,j = right,target = arrleft;while(iwhile(itarget )精品文檔if(iarri+ = arrj;2016全新精品資料-全新公文范文-全程指導(dǎo)寫作-獨(dú)家原創(chuàng) / 8while (i i+;if(iarrj = arri;arri = target;quick_sort(arr , left, i 1 );quick_sort(arr , i + 1, right );五、希爾排序主要思路是:先將整個待排元素序列分割成若干個子序列(由相隔某 個“增量”的元素組成的)分別進(jìn)行直接插入
6、排序,然后依 次縮減增量再進(jìn)行排序,待整個序列中的元素基本有序(增 量足夠小)時,再對全體元素進(jìn)行一次直接插入排序。由于 希爾排序是對相隔若干距離的數(shù)據(jù)進(jìn)行直接插入排序,因此 可以形象的稱希爾排序為“跳著插”。六、歸并排序主要思路是:當(dāng)一個數(shù)組左邊有序,右邊也有序,那合并這兩個有序 數(shù)組就完成了排序。如何讓左右兩邊有序了?用遞歸!這樣8/9( xepuFpue ;ui ” xepuFpejs 屮! jje_duuej 屮! jjb 屮!) ios_e6jeuj piOA !ijje_dujei =F|JJe f !xepu!_peis = f 6 o = !) oj !+(jJe = +|jj
7、e_dujej f) e|iqM !+ijje = +|jje_dujej !)Q|!MM !+ijje = +|jje_dujej esp !+(jJe = +|jje_dujej(!le i 屮!! l + xepuFpiuj = f ”xepuFpejs = i ;ui( xepuFpue ;ui ” xepuFpiuj ;ui ” xepuFpejs;ui jje_duuej 屮! jjb 屮! ) e6jeuu piOA。冒弭北可者犀卑丁北呂精品文檔2016全新精品資料-全新公文范文-全程指導(dǎo)寫作-獨(dú)家原創(chuàng) / 8if (start_index int mid_index =(sta
8、rt_index + end_index ) / 2;merge_sort ( arr , temp_arr , start_index , mid_index );merge_sort ( arr , temp_arr , mid_index + 1 , end_index );merge (arr , temp_arr , start_index , mid_index , end_index );七、堆排序堆排序的難點(diǎn)就在于堆的的插入和刪除。堆的插入就是一一每次插入都是將新數(shù)據(jù)放在數(shù)組最后,而從這個新數(shù)據(jù)的父結(jié)點(diǎn)到根結(jié)點(diǎn)必定是一個有序的數(shù) 列,因此只要將這個新數(shù)據(jù)插入到這個有序數(shù)列中即可。堆的刪除就是一一堆的刪除就是將最后一個數(shù)據(jù)的值賦給根結(jié)點(diǎn),然后再從根結(jié)點(diǎn)開始進(jìn)行一次從上向下的調(diào) 整。調(diào)整時先在左右兒子結(jié)點(diǎn)中找最小的,如
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度環(huán)保工程財產(chǎn)保全擔(dān)保協(xié)議3篇
- 甘肅2025年甘肅省中醫(yī)藥研究院招聘高層次人才3人筆試歷年參考題庫附帶答案詳解
- 2025版智慧醫(yī)療健康項目承包服務(wù)合同2篇
- 昆明2025年云南昆明市五華區(qū)云銅中學(xué)合同制教師招聘筆試歷年參考題庫附帶答案詳解
- 新疆2025年新疆昌吉州引進(jìn)人才65人筆試歷年參考題庫附帶答案詳解
- 2025年度個人住房公積金貸款合同(異地購房)4篇
- 2024年滬科新版九年級歷史上冊月考試卷
- 2025年浙教版九年級地理下冊階段測試試卷
- 2025年粵教滬科版八年級歷史上冊月考試卷
- 2025年度個人二手房翻新裝修工程合同書
- 急性肺栓塞搶救流程
- 《統(tǒng)計學(xué)-基于Python》 課件全套 第1-11章 數(shù)據(jù)與Python語言-時間序列分析和預(yù)測
- 《形象價值百萬》課件
- 紅色文化教育國內(nèi)外研究現(xiàn)狀范文十
- 中醫(yī)基礎(chǔ)理論-肝
- 小學(xué)外來人員出入校門登記表
- 《土地利用規(guī)劃學(xué)》完整課件
- GB/T 25283-2023礦產(chǎn)資源綜合勘查評價規(guī)范
- 《汽車衡全自動智能稱重系統(tǒng)》設(shè)計方案
- 義務(wù)教育歷史課程標(biāo)準(zhǔn)(2022年版)
- GB/T 2550-2016氣體焊接設(shè)備焊接、切割和類似作業(yè)用橡膠軟管
評論
0/150
提交評論