版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
7-7各種排序方法的比較v第七章排序技術(shù)學(xué)什么?各種排序方法的使用范例各種排序方法的綜合比較使用范例#include<iostream>#include<cmath>usingnamespacestd;//將排序類定義和各個(gè)排序算法的成員函數(shù)定義放到這里
intmain(){intselect,r[10]={2,5,1,7,9,4,3,6,5,8};SortL{r,10};cout<<"1.直接插入排序2.希爾排序"<<endl;cout<<"3.起泡排序4.快速排序"<<endl;cout<<"5.簡(jiǎn)單選擇排序6.堆排序"<<endl;cout<<"7.二路歸并遞歸排序8.二路歸并非遞歸排序"<<endl;cout<<"請(qǐng)輸入使用的排序技術(shù)編號(hào):";cin>>select;switch(select){case1:L.InsertSort();break;case2:L.ShellSort();break;case3:L.BubbleSort();break;case4:L.QuickSort(0,9);break;case5:L.SelectSort();break;case6:L.HeapSort();break;case7:L.MergeSortRecusion(0,9);break;case8:L.MergeSort();break;default:cout<<"輸入排序編號(hào)錯(cuò)誤"<<endl;break;}L.Print();return0;}排序方法平均情況直接插入排序O(n2)希爾排序O(nlog2n)~O(n2)起泡排序O(n2)快速排序O(nlog2n)簡(jiǎn)單選擇排序O(n2)堆排序O(nlog2n)歸并排序O(nlog2n)(1)直接插入排序、簡(jiǎn)單選擇排序和起泡排序?qū)儆谝活悾瑫r(shí)間復(fù)雜度為O(n2);從平均情況看快速排序是目前最快的一種排序方法(3)希爾排序的時(shí)間性能取決于增量序列,介于O(n2)和O(nlog2n)之間。(2)堆排序、快速排序和歸并排序?qū)儆谝活?,時(shí)間復(fù)雜度為O(nlog2n);比較時(shí)間性能排序方法最好情況直接插入排序O(n)希爾排序O(n1.3)起泡排序O(n)快速排序O(nlog2n)簡(jiǎn)單選擇排序O(n2)堆排序O(nlog2n)歸并排序O(nlog2n)從最好情況看(1)直接插入排序和起泡排序最好,O(n);(2)其他排序算法的最好情況與平均情況相同。如果待排序序列接近正序,首選直接插入排序和起泡排序比較時(shí)間性能排序方法最壞情況直接插入排序O(n2)希爾排序O(n2)起泡排序O(n2)快速排序O(n2)簡(jiǎn)單選擇排序O(n2)堆排序O(nlog2n)歸并排序O(nlog2n)(1)快速排序的時(shí)間復(fù)雜度為O(n2);從最壞情況看(3)最壞情況對(duì)直接選擇排序、堆排序和歸并排序影響不大。(2)直接插入排序和起泡排序雖然與平均情況相同,但系數(shù)大約增加一倍,所以運(yùn)行速度將降低一半;如果待排序序列接近正序或逆序,不推薦使用快速排序比較時(shí)間性能從空間性能看排序方法輔助空間直接插入排序O(1)希爾排序O(1)起泡排序O(1)快速排序O(log2n)~O(n)簡(jiǎn)單選擇排序O(1)堆排序O(1)歸并排序O(n)(1)歸并排序的空間復(fù)雜度為O(n);(2)快速排序的空間復(fù)雜度為O(log2n)~O(n);(3)其它排序方法的空間復(fù)雜度為O(1)。比較空間性能穩(wěn)定性與簡(jiǎn)單性(1)穩(wěn)定:包括直接插入排序、起泡排序和歸并排序;(1)簡(jiǎn)單算法:包括直接插入排序、簡(jiǎn)單選擇排序和起泡排序,從算法簡(jiǎn)單性看(2)不穩(wěn)定:包括希爾排序、簡(jiǎn)單選擇排序、快速排序和堆排序。從穩(wěn)定性看(2)改進(jìn)算法,較復(fù)雜:包括希爾排序、堆排序、快速排序和歸并排序。記錄本身信息量從記錄本身信息量的大小看記錄本身信息量越大,占用的存儲(chǔ)空間就越多,移動(dòng)記錄所花費(fèi)的時(shí)間就越多,所以對(duì)記錄的移動(dòng)次數(shù)較多的算法不利。記錄個(gè)數(shù)不多且記錄本身的信息量較大時(shí),首選簡(jiǎn)單選擇排序算法排序方法最好情況最壞情況平均情況直接插入排序O(n)O(n2)O(n2)起泡排序0O(n2)O(n2)簡(jiǎn)單選擇排序0O(n)O(n)關(guān)鍵碼的分布從關(guān)鍵碼的分布看(1)當(dāng)待排序記錄按關(guān)鍵碼有序時(shí),插入排序和起泡排序能達(dá)到O(n)的時(shí)間復(fù)雜度;對(duì)于快速排序而言,這是最壞情況,時(shí)間性能蛻化為O(n2);(2)簡(jiǎn)單選擇排序、堆排序和歸并排序的時(shí)間性能不隨記錄序列中關(guān)鍵碼的分布而改變。各種排序算法各有優(yōu)缺點(diǎn),應(yīng)該根據(jù)實(shí)際情況選擇合適的排序算法更深入的比較對(duì)于一般的內(nèi)部排序應(yīng)用插入排序、希爾排序、歸并排序和快速排序是經(jīng)常選用的方法,究竟使用哪個(gè)方法依賴于輸入規(guī)模和底層環(huán)境??焖倥判虿蝗绮迦肱判蚝谩R?yàn)榭焖倥判蚴沁f歸執(zhí)行的,所以這種情況會(huì)經(jīng)常發(fā)生。解決方法是對(duì)于小數(shù)組不使用遞歸快速排序,而使用插入排序等對(duì)小數(shù)組高效的排序算法,相對(duì)于自始至終使用快速排序節(jié)省大約15%的運(yùn)行時(shí)間。對(duì)于字符串排序?qū)τ谏倭康妮斎肴绻址械淖址∽暂^小字母表,并且字符串或者相對(duì)較短或者非常相似,對(duì)字符串進(jìn)行基數(shù)排序的效率會(huì)特別好。更深入的比較Java標(biāo)準(zhǔn)庫使用歸并排序算法在Java中執(zhí)行泛型排序,由于不容易使用內(nèi)聯(lián),動(dòng)態(tài)調(diào)度的開銷會(huì)減慢執(zhí)行速度,因此比較元素非常費(fèi)時(shí)。但是移動(dòng)元素相對(duì)省時(shí),可以采用引用賦值,而不是龐大的對(duì)象拷貝。歸并排序的比較次數(shù)是所有常
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 贛南醫(yī)科大學(xué)第一附屬醫(yī)院(第一臨床醫(yī)學(xué)院)2026年引培生招錄6人備考題庫參考答案詳解
- 2025年中鐵十一局集團(tuán)有限公司專業(yè)人才招聘?jìng)淇碱}庫及一套完整答案詳解
- 2025年杭州市中醫(yī)院公開招聘高層次人才14人備考題庫及參考答案詳解
- 甘肅電器科學(xué)研究院2025年度聘用制工作人員招聘?jìng)淇碱}庫及答案詳解一套
- 電解熔鑄工變革管理競(jìng)賽考核試卷含答案
- 2025年興業(yè)銀行天津分行校園招聘?jìng)淇碱}庫及答案詳解一套
- 2025年中信銀行誠聘駐點(diǎn)客戶經(jīng)理(國企可接受無經(jīng)驗(yàn))招聘?jìng)淇碱}庫及一套參考答案詳解
- 2025年中國科學(xué)院心理研究所認(rèn)知與發(fā)展心理學(xué)研究室杜憶研究組招聘?jìng)淇碱}庫及完整答案詳解1套
- 菏澤醫(yī)學(xué)??茖W(xué)?!吨袊肪V要》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年市屬國企派遣員工招聘?jìng)淇碱}庫及1套參考答案詳解
- 2025年滁州市公安機(jī)關(guān)公開招聘警務(wù)輔助人員50人備考題庫及一套參考答案詳解
- 2025年云南省人民檢察院聘用制書記員招聘(22人)備考筆試題庫及答案解析
- 2026屆四川涼山州高三高考一模數(shù)學(xué)試卷試題(含答案詳解)
- 銀行黨支部書記2025年抓基層黨建工作述職報(bào)告
- 腫瘤標(biāo)志物的分類
- 2025山西忻州市原平市招聘社區(qū)專職工作人員50人考試歷年真題匯編附答案解析
- 中藥煎煮知識(shí)與服用方法
- 2026東莞銀行秋季校園招聘?jìng)淇碱}庫及答案詳解(基礎(chǔ)+提升)
- 消防水泵房管理制度及操作規(guī)程
- 野戰(zhàn)軍生存課件
- 《民航概論》期末考試復(fù)習(xí)題庫(附答案)
評(píng)論
0/150
提交評(píng)論