數(shù)據(jù)結(jié)構(gòu)課程設(shè)計排序算法演示系統(tǒng)_第1頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計排序算法演示系統(tǒng)_第2頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計排序算法演示系統(tǒng)_第3頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計排序算法演示系統(tǒng)_第4頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計排序算法演示系統(tǒng)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

,實現(xiàn)各種內(nèi)部排序。包括直接插入排序排序,冒泡排序,快速排序,直接,3typedef{int#include#defineL #defineFALSE#defineTRUEtypedef{intRecTypeR[L];intnum;intint intmain(){SeqlistS;inti,k;char {} 3--------4-------- 5-------- 8-------- printf("\n\t\t請選擇:");{}{caseprintf("\n\t\t請輸入%d個待排序數(shù)據(jù)\n\t\t",L);{}case'2':case case'4':case:\n\t\t");{}{}printf("\n\t\t比較次數(shù)是:%d\n\t\t",sum);printf("\n\t\t交換次數(shù)是:%d\n\t\t",sun);case'6':casecase'8':caseprintf("\n\t\t對不起,您輸入有誤,請重新輸入!\n");}{{printf("\n\n\t\t排序完畢!");printf("\n\t\t按回車鍵繼續(xù)!");{}}}}return}冒泡排序思想被放到了最后;第二作前n-1個數(shù)據(jù)(假設(shè)有n個數(shù)據(jù),依然是依次比較相鄰的兩個i+1的數(shù)據(jù)(假設(shè)i取值是從1開始的,則n-i+i位置上的數(shù)據(jù)為第i大的數(shù)據(jù)。一共有n-1in-ivoid{intintexchange=TRUE;//標(biāo)志位exchange初始化為TRUE1printf("\n\t\t原始數(shù)據(jù)為(按回車鍵開始排序:\n\t\t");{}{++)//{m++;//比較次數(shù)++{}} {printf("\t\t第%d趟冒泡排序的結(jié)果為:\n\t\t",i); }}}printf("\n\t\t移動次數(shù)是:\t\t");printf("\n\t\t排序最終結(jié)果是:\n\t\t"); }}快速排序思想{inti=low,j=high,k;{ } }}{}}printf("\t\t第%d } }i-1,L[1..i-1iL[i]L[1..i-1]的適當(dāng)L[1..i]又是排好序的序列。要達(dá)到這個目的,我們可以用順序比較的方法。首L[iL[i-1L[i-1]≤L[i],L[1..i]iL[iL[i-1L[i-1]L[i-2],j(1≤j≤i-1),L[j]≤L[j+1]時為止void{inti,j,k,m=0,x=0; printf("\n\t\t原始數(shù)據(jù)為:\n\t\t");{}{{{}}printf("\t\t第%d趟直接插入排序的結(jié)果為:\n\t\t",m); }}printf("\n\t\t比較次數(shù)是:\t\t");printf("\n\t\t移動次數(shù)是:\t\t");printf("\n\t\t排序最終結(jié)果是:\n\t\t"); }}4.1.4排先取一個小于n的整數(shù)d1作為第一個增量把文件的全部記錄分成d1個組。所有距離為dl的倍數(shù)的記錄放在同一個組中。先在各組內(nèi)進行直接插入排序;然后,取第二個增量d2<d1重復(fù)上述的分組和排序,直至所取的增量dt=1(dt<dt-ld2<d1),即所有記錄放在同一組中進行直接插入排序為止。代碼void {inti,j,gap,x,k,y=0,m=0; printf("\n\t\t原始數(shù)據(jù)為:\n\t\t");{}{{{{}{}}}printf("\t\t第%d趟排序的結(jié)果為:\n\t\t",m);{}}printf("\n\t\t比較次數(shù)是:\t\t");printf("\n\t\t移動次數(shù)是:\t\t");printf("\n\t\t排序最終結(jié)果是:\n\t\t");{}}第一次從R[0]~R[n-1]中選取最小值,與R[0]交換,第二次從R{1}~R[n-1]中選取最小值,與R[2]交換,....,第i次從R[i-1]~R[n-1]中選取最小值,與R[i-1]交換, ,第n-1次從R[n-2]~R[n-1]中選取最小值,與R[n-2]交換,總共通過n-1次,得到一個按排序碼從小到大排列的有序序列.void{int:\n\t\t");{}{ { }}{ }printf("\t\t第%d趟選擇排序的結(jié)果為:\n\t\t",i);{}}printf("\n\t\t比較次數(shù):%d",x);printf("\n\t\t移動次數(shù):%d",y);printf("\n\t\t排序最終結(jié)果是:\n\t\t");{}}代碼voidCreateHeap(introot,intindex,int*x,int{int //j{{{} //{}{}*x=}}void{inti,j,temp,k,x=0,y=0; {} {printf("\t\t第%d{}}printf("\n\t\t比較次數(shù)是:%d\t\t",x);}void{int:\n\t\t");{}{}}歸并排序思想將有n個記錄的原始序列看作n個有序子序列,每個子序列的長度為1,然后從第一個子序列開始,把相鄰的子序列兩兩合并,得到[n/2]個長度為21的子序列(當(dāng)子序列個數(shù)為奇數(shù)時,最后一組合并得到的序列長度為1,把這一過程稱為一次歸并排序,對第一次歸并排序后的[n/2]個子序列采用上述方法繼續(xù)順序成對歸并,如此重復(fù),當(dāng)最后得到的長度為n的一個子序列時,該子序列便是原始序列歸并排序后的有序序列。代碼voidMerge(intlow,intmm,inthigh,int*x,int*y)//{int //i對第一個開始到結(jié)尾,jR1=newRecType[high-low+1];{}{}{}{}{}}voidMergePass(intlength,int*x,int*y)//{int );//} }}voidMergesort{int:\n\t\t"); } m++

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論