




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、插入排序1.直接插入排序原理:將數(shù)組分為無序區(qū)和有序區(qū)兩個區(qū),然后不斷將無序區(qū)的第一個元素按大小順序插入到有序區(qū)中去,最終將所有無序區(qū)元素都移動到有序區(qū)完成排序。要點:設立哨兵,作為臨時存儲和判斷數(shù)組邊界之用。實現(xiàn):Void InsertSort(Node L,int length)Int i,j;/分別為有序區(qū)和無序區(qū)指針for(i=1;i<length;i+)/逐步擴大有序區(qū)j=i+1;if(Lj<Li)L0=Lj;/存儲待排序元素While(L0<Li)/查找在有序區(qū)中的插入位置,同時移動元素Li+1=Li;/移動i-;/查找Li
2、+1=L0;/將元素插入i=j-1;/還原有序區(qū)指針2.希爾排序原理:又稱增量縮小排序。先將序列按增量劃分為元素個數(shù)相同的若干組,使用直接插入排序法進行排序,然后不斷縮小增量直至為1,最后使用直接插入排序完成排序。要點:增量的選擇以及排序最終以1為增量進行排序結束。實現(xiàn):Void shellSort(Node L,int d)While(d>=1)/直到增量縮小為1Shell(L,d);1 / 6d=d/2;/縮小增量Void Shell(Node L,int d)Int i,j;For(i=d+1;i<leng
3、th;i+)if(Li<Li-d)L0=Li;j=i-d;While(j>0&&Lj>L0)Lj+d=Lj;/移動j=j-d;/查找Lj+d=L0;交換排序1.冒泡排序原理:將序列劃分為無序和有序區(qū),不斷通過交換較大元素至無序區(qū)尾完成排序。要點:設計交換判斷條件,提前結束以排好序的序列循環(huán)。實現(xiàn):Void BubbleSort(Node L)Int i ,j;Bool ischanged;/設計跳出條件For(j=n;j<0;j-)ischanged =false;For(i=0;i<j;
4、i+)If(Li>Li+1)/如果發(fā)現(xiàn)較重元素就向后移動Int temp=Li;Li=Li+1;Li+1=temp;Ischanged =true;If(!ischanged)/若沒有移動則說明序列已經(jīng)有序,直接跳出Break;2.快速排序原理:不斷尋找一個序列的中點,然后對中點左右的序列遞歸的進行排序,直至全部序列排序完成,使用了分治的思想。要點:遞歸、分治實現(xiàn):選擇排序1.直接選擇排序原理:將序列劃分為無序和有序區(qū),尋找無序區(qū)中的最小值和無序區(qū)的首元素交換,有序區(qū)擴大一個,循環(huán)最終完成全部排序。要點:實現(xiàn):Void SelectSort(Node
5、0;L)Int i,j,k;/分別為有序區(qū),無序區(qū),無序區(qū)最小元素指針For(i=0;i<length;i+)k=i;For(j=i+1;j<length;j+)If(Lj<Lk)k=j;If(k!=i)/若發(fā)現(xiàn)最小元素,則移動到有序區(qū)Int temp=Lk;Lk=Li;Li=Ltemp; 2.堆排序原理:利用大根堆或小根堆思想,首先建立堆,然后將堆首與堆尾交換,堆尾之后為有序區(qū)。要點:建堆、交換、調(diào)整堆實現(xiàn):Void HeapSort(Node L)BuildingHeap(L);/建堆(大根堆)For(int i
6、=n;i>0;i-)/交換Int temp=Li;Li=L0;L0=temp;Heapify(L,0,i);/調(diào)整堆Void BuildingHeap(Node L) For(i=length/2 -1;i>0;i-)Heapify(L,i,length);歸并排序原理:將原序列劃分為有序的兩個序列,然后利用歸并算法進行合并,合并之后即為有序序列。要點:歸并、分治實現(xiàn):Void MergeSort(Node L,int m,int n)Int k;If(m<n)K=(m+n)/
7、2;MergeSort(L,m,k);MergeSort(L,k+1,n);Merge(L,m,k,n);基數(shù)排序原理:將數(shù)字按位數(shù)劃分出n個關鍵字,每次針對一個關鍵字進行排序,然后針對排序后的序列進行下一個關鍵字的排序,循環(huán)至所有關鍵字都使用過則排序完成。要點:對關鍵字的選取,元素分配收集。實現(xiàn):Void RadixSort(Node L,length,maxradix)Int m,n,k,lsp;k=1;m=1;Int temp10length-1;Empty(temp); /清空臨時空間While(k<maxradix) /遍歷所有關鍵字For(int i=0;i<length;i+) /分配過
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年洛陽市洛寧縣招聘政府專職消防員考試真題
- 倉庫保潔服務合同范本
- 出售車位合同范本
- 企業(yè)經(jīng)銷合同范本
- 2024年德陽市就業(yè)創(chuàng)業(yè)促進中心市本級公益性崗位招聘考試真題
- 個人房屋裝飾合同范本
- 買斷合同屬于合同范本
- 低價購買租賃合同范本
- 全案整裝合同范本
- 勞務聘用合同范本6
- 2024項目管理人員安全培訓考試題(審定)
- 2024 年國家公務員考試《申論》(地市級)真題及答案
- 南京2025年中國醫(yī)學科學院皮膚病醫(yī)院招聘13人第二批筆試歷年典型考點(頻考版試卷)附帶答案詳解
- 2024年沈陽職業(yè)技術學院高職單招語文歷年參考題庫含答案解析
- 《榜樣9》觀后感心得體會一
- 2024年上海普陀區(qū)司法局招聘人民調(diào)解員考試真題
- 駕照考試題庫及答案(完整版)
- 2024年3、6、9月青少年軟件編程Python等級考試一級真題(全3套 含答案)
- 大族激光打標機培訓
- 2025中國鐵塔公司社會招聘85人高頻重點提升(共500題)附帶答案詳解
- T-IMAS 087-2024 托克托縣辣椒地方品種提純復壯技術規(guī)程
評論
0/150
提交評論