NOI排序算法課程膠片_第1頁(yè)
NOI排序算法課程膠片_第2頁(yè)
NOI排序算法課程膠片_第3頁(yè)
NOI排序算法課程膠片_第4頁(yè)
NOI排序算法課程膠片_第5頁(yè)
已閱讀5頁(yè),還剩70頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、排序ah冒洵排序2 .快速排序3 .直接插入排序4 .希爾排序5 .選擇排序6 . 4結(jié)冒泡排序算法描述設(shè)待排序記錄序列中的腐個(gè)她t q0二,0% u-0 H 一 上了早 ;丸:-J -力一般地,第i趟起泡排序從1到n-i+1g。蟲(chóng), c H 00 治"。°力,-Q ° f>“p °1 n "C-日人 -0、v M 。.< 中 。=0 Q 。» 0ct *013 c p g J f:4 F J .:m bo- Q cw O C.«柢依次曬IO而隼記錄的關(guān)鍵字舞如果發(fā)生逆序”則交:換之一,'其結(jié)果是這聯(lián)訐1

2、個(gè)記錄中,關(guān)鍵字最大的記錄被交換 到第n-iM的位置上 最多作R-1趟救一chang-13change 1chanQ總體演示第三第四第五趟排趟排趟排算法Ocliide <stdi0h>,噌%藕而抽審也卬M10 mimbeis;W!k尚冬i演贏崢ScanfC9 *» . P,: pimtfC'ii%ibi(i=l 值=10 j 誤刊及顛地>叩旬釐.tN回同i=&iF小砒用戶舄0 口"產(chǎn)一 ° / >L j ,一pimtfS'鼬曰fo工逋演力相jj直11血蜘,皿小1.冒泡排序著快富非序 srr«i a *i3

3、.直接插入排序4 .希爾排序5 .選擇排序6小結(jié)快潮脖0 9。 0cs。? 3心快速排序是通過(guò)比較關(guān)鍵碼、:交換記錄,»jWr詔錄為畀修記錄稱的支幼觸將蒯密列分成3 3 .C1 卜上1 .a J . U c 。 Ou "再3 I rt O »U n q ° v " :»0 P 1 - 6 o V D 4 d »的部分鍵碼大于的裝總理的關(guān)鍵碼一部分所有記錄的關(guān)uo O<OU "二"1 C , (ZR1另一有談的關(guān)鍵碼小于支點(diǎn)馬算法描述關(guān)鍵小0Y b訕_.;二 一 J取序歹心一池田鼠募就罐字 右側(cè)君礴的

4、菱鍵字都知母 記錄的黃鍵字。0 Vpi!qC0 uop 14,CG,一,AAd '42一重復(fù)施行上述方法,叫, 二 C"/ -' -'Ab-基準(zhǔn)記錄也稱為樞軸(或支點(diǎn))記錄。0 .tr F* ,; r D c p 4©.t/F為樞軸記錄,其關(guān)鍵字為Pivotkey呻嚴(yán)-s ,孥5Vy矽示例1始關(guān)鍵字一次交換二次交換三次交換high-1完成一趟排序富去示例2完成一趟排序分別進(jìn)行快遍非序有序序列算法分析3b 口 O ; * .° o 口:將整個(gè)序列劃分為左右兩 只要是關(guān)鍵字小于基準(zhǔn)記錄關(guān)鍵字曾見(jiàn)厚都移快速排序是一個(gè)遞歸過(guò)程;利用序列第一個(gè)記錄作

5、為基準(zhǔn),個(gè)子惻/ 到序列左側(cè);隨排序的趟數(shù)小而翹&碉高度。如果歌*星定播區(qū),該記錄的左側(cè)子畫(huà)與 右側(cè)子的的長(zhǎng)度相同”則下一步將是對(duì)兩個(gè)長(zhǎng)度減半的J'd . 3 0 夕 2逐 口 / di? n Hk - R 聲記 1 . qq . r Z U 一n. 730g UG Qj, J、0。G子序列進(jìn)行排序,這是最理想的情況”二 o A" - c - l ror n e14* e 、 產(chǎn)*r>0.3* > o0 <rr u ,加1-冒泡排序2 .快速排序4 .希爾排序5 .選擇排序6 .小結(jié)直接插入排序Ig算法描述:n*<rJ©。 一口 .*

6、記錄存放在數(shù)組R0,n1中,排序過(guò)程的某一中間時(shí)刻,R被劃分 成兩個(gè)子區(qū)間和其中m前一個(gè)子區(qū)間是已排好 序的有序區(qū);后一個(gè)子區(qū)間則是當(dāng)前未排序的部分©多將當(dāng)前無(wú)序區(qū)的第1個(gè)記錄Ri插入到有序區(qū)R0j-1中適當(dāng)?shù)奈恢?,使R。i變?yōu)樾碌挠行騾^(qū)號(hào)操作細(xì)節(jié)置«當(dāng)插入第i(i2i)個(gè)對(duì)象時(shí),,前面的HOL “1L,”iT已經(jīng)排 好序。 用ri的關(guān)鍵字與ri7L ri-2,的關(guān)鍵字順序進(jìn)行比較(和順 序查找類似),如果小于,則將"x向后移動(dòng)(插入位置后的記錄向 后順移) 找到插入位置即將ri插入直接插入排序電實(shí)用例子: 已知待序的一組記錄的初始排列為:21. 25 f 49

7、. 25*, 16, 08345市 /'J算法忑猊534(int r int n )假設(shè)關(guān)鍵字為整型,放在向量口中int i, j, temp;for (i = l;i< n;i+ )temp = ri;for(j = i;j>O;j-)從后向前順序比錨井依次后移i.書(shū).: ja .,耀自覆蚪; else臼* 八 break;最好情況下工十二2次記錄,總的關(guān):0 cq., ' Q G 為 N A、Ba.、即魯二工uxn趟色 . m v u - 14v <251 t;-喈-u , 一節(jié) r u ya« u r- 。/ ptjI , , r . '

8、;4 v惶最后T記錄比較俄,醐i次數(shù)- - h r,、酬®fe直接插同,序是一種穩(wěn)定ME序期算法分析41、一4 一一.一皿S關(guān)鍵字比較次數(shù)和tm 帆次數(shù)與記錄關(guān)鍵鈉初始排冷鼻。中。工 Q ;.fc U。,,彳叫 6 0 P “L noU fP :干不 y 了早*? *t個(gè) U c =甘:0口不L ' C" 行可 際父" .FT (5 *,7E首謝i人排演型觥點(diǎn)是簡(jiǎn)單Ji®錄數(shù)較少時(shí)拿tIto南M涵露遍辿 °小 一。 一。.一。: 小1-冒泡排序2 .快速排序3 .直接插入排序胞5 .選擇排序6 .小結(jié)J希爾排序嵬稱縮小增量排序4 3 1

9、£ 叫,學(xué) L'/ 0 - . . ° 5。,一。. O c 刁 u . b. cn 8 , Pa L p ,是1熊9年由氏L.Shell提出來(lái)的h ,ouc Ga co ° aa o 算法雌i* ¥« | c .先取一個(gè)整數(shù)gap <n (待排序記錄數(shù))作為間隔,將全部記錄分為gap個(gè)子序列,所有距離為gap的記錄放在同一個(gè)子序列中»在每一個(gè)子序列中分別施行直接插入排序。»然后縮小間隔gap,例如取gap=gap/2重復(fù)上述的子序列劃分和排序工作勺直到最后取gap=1,將所有記錄放在同一個(gè)序列中排序?yàn)橹?。算?/p>

10、示例已知待排序的一組記錄的初始排列為:21, 25, 49, 25米, 16, 08tlA1“一用t時(shí)gap的值較大,子序列中的記錄較少,排序速度較快.jf ° b 0 c b on 0=*=C Q ° c ° » .90 jQ70q> | 5 C . f "- O 1 d 39ro隨著排序進(jìn)展.gap值逐漸翊修子序列中百個(gè)數(shù)逐 漸變多,由于前多舞嚕已基本有甬所以排的慝 « V.P?|nl(Pa,o voclfa = o u v is “' °-6 4 b :8?=。i "sv "7 o e

11、V.學(xué),'X、n 弋、.Tin, .P »1 u r-. 七:,7 *o度仍然很快下、口 X。7;。*:的p的取法有多種。斯曲提出取gap號(hào)I92A ji ,人 .69±已.喧,®-0費(fèi)”Ln/2j, gap =d0 D,直至Ugap = 1>,° DP / D g|t* L un 31-冒泡排序2 .快速排序3 .直接插入排序4 .希爾排序B僻6.小結(jié)- WE序 idflB管先通過(guò)喇鼎匕較,:從痣數(shù)中撥出最小甌 耨它二與黯一個(gè)i Q ”t ffi 以 九 c0os交換一第一座擇排序人結(jié)果最小的數(shù)被安置在第& 0 叱=/'?

12、.。必 r>b «Zn n_ « 走“。-8 空 Q。b 。3"<0 / J r r-*° cF o *u w ° -; o, ! c °u,'"co d * " " S 'A 3 0)一個(gè)元素位置上»再通蚪球比較款剩余的tm個(gè)數(shù)中找出關(guān)鍵字 次小抵昵互口個(gè)數(shù)交外*趟選擇排序重復(fù)蓑述過(guò)程我經(jīng)過(guò)nJ趟排序后事排序結(jié)束1* Ja 93c . 、屯尊 日 排序示例一i=l初始:13i=2 一趟T J. 皚"拉二趟:四趟: 五趟: 六趟:O

13、 -, 廠132738印76般65 13273849邛697§5 1327384965?。? 1327384965769732算法示例錄小者25* 無(wú)交換最小者25無(wú)交換各趟排序后的結(jié)果算法示例$ i =2時(shí)選擇排序的過(guò)程"工23打旨示前瑟蛀最“清S,:/ 算法#include <stdLo.h>main。int Niijgk 弭printf(nInpi# .10 numbeD5:n' j:f噫氯云£1h)j£f%律心國(guó));* pnn氓今舫通螭奉0:在4I£rLfor備淵廣=10軒海 班加岡)I;年喇柳澎 一 。ba永叩網(wǎng)眠

14、儂If1 IT", "。刀printf(,1The sorted numbei3:'ii");print堪男d;哂企IL冒泡排序2 ,快速排序3 .直接插入排序4 .希爾排序5 .選擇排序6小結(jié)田。痂0r臚濟(jì)基本概念排序(Sorting):簡(jiǎn)單地說(shuō),排序就是把記錄按照某個(gè)(或某幾個(gè))字段的值以遞增:(由小到大)或遞減(由大到?。┑拇涡蛑匦屡帕械倪^(guò)程心(如按 年齡從小到大排序)'學(xué)暈?zāi)晁嵝詣e2004001雌18男20040021920Q4003劃字 17賣(mài)2004004 。 .18女2004005*19男2004006季小燕女E '33舊排序

15、碼與關(guān)鍵碼(p-作為比較基礎(chǔ)的一個(gè)(或多個(gè))字段,稱為排序碼。排序碼可以是數(shù)值、符號(hào)或符號(hào)串。排序碼不一定是關(guān)鍵石P 00 4;關(guān)鍵碼可以作為排序碼。關(guān)鍵碼是唯一的,但排序碼不一定唯一0排序碼不唯一時(shí),排序的結(jié)果可能不唯一.參與排序的對(duì)象,稱為記錄。一個(gè)記錄可以包含多個(gè)字段。如果記錄集合中存在多個(gè)排序碼相同的記錄,經(jīng)過(guò)排序后,排序碼相同的記錄的前后次序保持不變,則這種排序方法稱為是穩(wěn)定的, 否則是不穩(wěn)定的。滑排序的類型排序方法可以分為五種:插入排序、選擇排序、交換 排序、分配排序和歸并排序。 JU在排序過(guò)程中,全部記錄存放在內(nèi)存,則稱為內(nèi)排序,如果排序過(guò)程中需要使用外存,則稱為外排序。排序算法的評(píng)價(jià)評(píng)價(jià)排序算法好壞的標(biāo)準(zhǔn)-執(zhí)行算法所需的時(shí)間-執(zhí)行算法所需要的附加空間 -算法本身的復(fù)雜程度也是考慮的一個(gè)因素排序的時(shí)間開(kāi)銷(xiāo)是算法好壞的最重要的標(biāo)志排序的時(shí)間開(kāi)銷(xiāo)衡量標(biāo)準(zhǔn):-算法執(zhí)行中的比較次數(shù)(必須)機(jī) -算法執(zhí)行中的移動(dòng)次數(shù)(有可能避免)。通常會(huì)關(guān)注最壞情況和平均情況的開(kāi)銷(xiāo)0階段小節(jié),幾種常見(jiàn)的排序算法Z冒泡排序的特點(diǎn)Z快速排序的特點(diǎn),一趟排序的子過(guò)程題目-題旦:都網(wǎng)裁組整 65 工 30L 751 ; 129 ,

溫馨提示

  • 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ù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論