版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C語(yǔ)言中三種常見排序算法分析語(yǔ)言中三種常見排序算法分析一、冒泡法(起泡法)一、冒泡法(起泡法)算法要求算法要求:用起泡法對(duì)10個(gè)整數(shù)按升序排序。算法分析算法分析:如果有n個(gè)數(shù),則要進(jìn)行n1趟比較。在第1趟比較中要進(jìn)行n1次相鄰元素的兩兩比較,在第j趟比較中要進(jìn)行nj次兩兩比較。比較的順序從前往后,經(jīng)過(guò)一趟比較后,將最值沉底(換到最后一個(gè)元素位置),最大值沉底為升序,最小值沉底為降序。算法源代碼算法源代碼:#includemain()in
2、ta[10]ijtprintf(“Pleaseinput10numbers:“)輸入源數(shù)據(jù)f(i=0ia[i1])相鄰元素比較,逆序則交換t=a[i]a[i]=a[i1]a[i1]=t輸出排序結(jié)果printf(“Thestednumbers:“)f(i=0imain()inta[10]ijktn=10printf(“Pleaseinput10numbers:“)f(i=0i10i)scanf(“%d“中)逐個(gè)后移一個(gè)位置,最后完成插入。
3、該算法的特點(diǎn)是在尋找插入位置的同時(shí)完成元素的移動(dòng)。因?yàn)樵氐囊苿?dòng)必須從后往前,則可將兩個(gè)操作結(jié)合在一起完成,提高算法效率。仍可進(jìn)行升序或降序排序。幾種排序的概念在數(shù)據(jù)的處理中,數(shù)據(jù)的排序是相當(dāng)重要的。它可以使數(shù)據(jù)更有條理,方便數(shù)據(jù)的其它處理。在學(xué)習(xí)生活中,也經(jīng)常用到數(shù)據(jù)的排序,如:考完試后個(gè)人成績(jī)的排名、運(yùn)動(dòng)會(huì)上班級(jí)總分的排名、常規(guī)評(píng)比分?jǐn)?shù)的排序。這些排序當(dāng)然不是人工完成的,它們大多數(shù)是用excel軟件來(lái)代勞的。那么excel軟件的排序
4、的本質(zhì)方法是什么呢?這就是我所要研究學(xué)習(xí)的內(nèi)容。通過(guò)查閱圖書、教材,搜索資料、教程,我了解到:排序的本質(zhì)其實(shí)就是比較。對(duì)于任何一種排序方法來(lái)說(shuō),比較都是其最重要的一個(gè)組成部分。但它也是最簡(jiǎn)單的部分,因?yàn)榕判蚍椒ǖ暮脡?、快慢取決于比較的方法、比較的順序和比較的次數(shù),而與比較本身關(guān)系不大。那么,排序具體有那些方法呢?下面介紹幾種我研究學(xué)習(xí)了的算法。一、冒泡排序已知一組無(wú)序數(shù)據(jù)a[1]、a[2]、……a[n],需將其按升序排列。首先比較a[1
5、]與a[2]的值,若a[1]大于a[2]則交換兩者的值,否則不變。再比較a[2]與a[3]的值,若a[2]大于a[3]則交換兩者的值,否則不變。再比較a[3]與a[4],依此類推,最后比較a[n1]與a[n]的值。這樣處理一輪后,a[n]的值一定是這組數(shù)據(jù)中最大的。再對(duì)a[1]~a[n1]以相同方法處理一輪,則a[n1]的值一定是a[1]~a[n1]中最大的。再對(duì)a[1]~a[n2]以相同方法處理一輪,依此類推。共處理n1輪后a[1]、
6、a[2]、……a[n]就以升序排列了。優(yōu)點(diǎn):穩(wěn)定,比較次數(shù)已知;缺點(diǎn):慢,每次只能移動(dòng)相鄰兩個(gè)數(shù)據(jù),移動(dòng)數(shù)據(jù)的次數(shù)多。二、選擇排序已知一組無(wú)序數(shù)據(jù)a[1]、a[2]、……a[n],需將其按升序排列。首先比較a[1]與a[2]的值,若a[1]大于a[2]則交換兩者的值,否則不變。再比較a[1]與a[3]的值,若a[1]大于a[3]則交換兩者的值,否則不變。再比較a[1]與a[4],依此類推,最后比較a[1]與a[n]的值。這樣處理一輪后,
7、a[1]的值一定是這組數(shù)據(jù)中最小的。再將a[2]與a[3]~a[n]以相同方法比較一輪,則a[2]的值一定是a[2]~a[n]中最小的。再將a[3]與a[4]~a[n]以相同方法比較一輪,依此類推。共處理n1輪后a[1]、a[2]、……a[n]就以升序排列了。優(yōu)點(diǎn):穩(wěn)定,比較次數(shù)與冒泡排序一樣,數(shù)據(jù)移動(dòng)次數(shù)比冒泡排序少;缺點(diǎn):相對(duì)之下還是慢。三、插入排序已知一組升序排列數(shù)據(jù)a[1]、a[2]、……a[n],一組無(wú)序數(shù)據(jù)b[1]、b[2]
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c語(yǔ)言冒泡排序法
- c語(yǔ)言設(shè)計(jì)--冒泡法排序
- 排序算法c語(yǔ)言版冒泡排序
- 選擇排序發(fā) 冒泡排序法
- 實(shí)現(xiàn)冒泡排序、直接插入排序和直接選擇排序的算法
- 冒泡排序c++
- 冒泡排序算法詳解
- 數(shù)據(jù)結(jié)構(gòu) 利用冒泡排序算法進(jìn)行排序
- 課程設(shè)計(jì)---設(shè)計(jì)排序典型算法(冒泡與快速排序)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--冒泡排序法
- 單片機(jī) 冒泡排序
- 概述插入排序 (直接插入、折半插入、表插入排序、希爾排序
- c語(yǔ)言排序大全
- 概述插入排序交換排序選擇排序歸并排序基數(shù)排序外排序小結(jié)
- 概述插入排序交換排序選擇排序歸并排序基數(shù)排序外部排序小結(jié)
- c語(yǔ)言經(jīng)典排序算法(8種-含源代碼)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---希爾排序,冒泡排序,快速排序
- 軟件測(cè)試技術(shù)之冒泡排序檢測(cè)
- 插入排序
- c語(yǔ)言 排序?qū)W生成績(jī)
評(píng)論
0/150
提交評(píng)論