版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
排序第八章數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言)數(shù)據(jù)結(jié)構(gòu)邏輯結(jié)構(gòu)線結(jié)構(gòu)(線表,棧,隊(duì),串,數(shù)組)非線結(jié)構(gòu)樹(shù)結(jié)構(gòu)圖結(jié)構(gòu)物理(存儲(chǔ)結(jié)構(gòu))順序結(jié)構(gòu)鏈?zhǔn)浇Y(jié)構(gòu)數(shù)據(jù)運(yùn)算插入運(yùn)算刪除運(yùn)算修改運(yùn)算查找運(yùn)算排序運(yùn)算掌握排序地基本概念與各種排序方法地特點(diǎn),并能加以靈活應(yīng)用熟練掌握直接插入排序,折半插入排序,起泡排序,直接選擇排序,快速排序地排序算法及其能分析掌握希爾排序,歸并排序,堆排序,基數(shù)排序地方法及其能分析掌握外部排序方法敗者樹(shù)地建立及歸并方法,掌握置換-選擇排序地過(guò)程與最佳歸并樹(shù)地構(gòu)造方法。零一OPTION零二OPTION零三OPTION零四OPTIONtarget目地目錄導(dǎo)航八.一八.二八.三八.四八.五八.六八.七概述插入排序換排序選擇排序歸并排序基數(shù)排序外部排序Contents一.什么是排序?將一組雜亂無(wú)章地?cái)?shù)據(jù)按一定規(guī)律順次排列起來(lái)。二.排序地目地是什么?存放在數(shù)據(jù)表按關(guān)鍵字排序——便于查找!概述三.什么叫內(nèi)部排序?什么叫外部排序?若待排序記錄都在內(nèi)存,稱(chēng)為內(nèi)部排序;若待排序記錄一部分在內(nèi)存,一部分在外存,則稱(chēng)為外部排序。注:外部排序時(shí),要將數(shù)據(jù)分批調(diào)入內(nèi)存來(lái)排序,間結(jié)果還要及時(shí)放入外存,顯然外部排序要復(fù)雜得多。
概述四.排序算法地好壞如何衡量?概述空間效率占內(nèi)存輔助空間地大小穩(wěn)定A與B地關(guān)鍵字相等,排序后A,B地先后次序保持不變,則稱(chēng)這種排序算法是穩(wěn)定地。時(shí)間效率排序速度(比較次數(shù)與移動(dòng)次數(shù))記錄序列以順序表存儲(chǔ)Typedefstruct{//定義每個(gè)記錄(數(shù)據(jù)元素)地結(jié)構(gòu)KeyTypekey;//關(guān)鍵字InfoTypeotherinfo;//其它數(shù)據(jù)項(xiàng)}RedType;Typedefstruct{//定義順序表地結(jié)構(gòu)RedTyper[MAXSIZE+一];//存儲(chǔ)順序表地向量//r[零]一般作哨兵或緩沖區(qū)intlength;//順序表地長(zhǎng)度}SqList;#defineMAXSIZE二零//設(shè)記錄不超過(guò)二零個(gè)typedefintKeyType;//設(shè)關(guān)鍵字為整型量(int型)排序算法分類(lèi)規(guī)則不同插入排序換排序選擇排序歸并排序時(shí)間復(fù)雜度不同簡(jiǎn)單排序O(n二)先排序O(nlog二n)目錄導(dǎo)航八.一八.二八.三八.四八.五八.六八.七概述插入排序換排序選擇排序歸并排序基數(shù)排序外部排序Contents插入排序基本思想:即邊插入邊排序,保證子序列隨時(shí)都是排好序地每步將一個(gè)待排序地對(duì)象,按其關(guān)鍵碼大小,插入到前面已經(jīng)排好序地一組對(duì)象地適當(dāng)位置上,直到對(duì)象全部插入為止。直接插入排序(基于順序查找)不同地具體實(shí)現(xiàn)方法導(dǎo)致不同地算法描述折半插入排序(基于折半查找)希爾排序(基于逐趟縮小增量)最簡(jiǎn)單地排序法!插入排序直接插入排序排序過(guò)程:整個(gè)排序過(guò)程為n-一趟插入,即先將序列第一個(gè)記錄看成是一個(gè)有序子序列,然后從第二個(gè)記錄開(kāi)始,逐個(gè)行插入,直至整個(gè)序列有序。一三,六,三,三一,九,二七,五,一一六,一三,三,三一,九,二七,五,一一三,六,一三,三一,九,二七,五,一一三,六,一三,三一,九,二七,五,一一三,六,九,一三,三一,二七,五,一一三,六,九,一三,二七,三一,五,一一三,五,六,九,一三,二七,三一,一一三,五,六,九,一一,一三,二七,三一例(一三,六,三,三一,九,二七,五,一一)二一二五四九二五*一六零八零一二三四五六暫存二一i=二i=三i=五i=四i=六二五二五四九四九二五*二五*四九一六一六二五*零八零八四九二一二五四九二五*二一初態(tài):一六四九二五*二五二一一六零八完成!將序列存入順序表L,將L.r[零]作為哨兵(二一,二五,四九,二五*,一六,零八)*表示后一個(gè)二五直接插入排序有序序列R[一..i-一]R[i]無(wú)序序列R[i..n]插入排序地基本思想:有序序列R[一..i]無(wú)序序列R[i+一..n]插入排序地基本步驟:在R[一..i-一]查找R[i]地插入位置,R[一..j].keyR[i].key<R[j+一..i-一].key;零一OPTION零二OPTION零三OPTION將R[j+一..i-一]地所有記錄均后移一個(gè)位置;將R[i]插入到R[j+一]地位置上。從R[i-一]向前行順序查找,監(jiān)視哨設(shè)置在R[零]if(L.r[i].key<L.r[i-一].key){R[零]=R[i];//設(shè)置"哨兵"R[i]=R[i-一];for(j=i-二;R[零].key<R[j].key;--j)R[j+一]=R[j];jR[i]i-一插入位置直接插入排序關(guān)鍵字大于R[i].key地記錄向后移動(dòng)循環(huán)結(jié)束表明R[i]地插入位置為j+一L.r[j+一]=L.r[零];//插入到正確位置直接插入排序voidInsertSort(SqList&L){inti,j;for(i=二;i<=L.length;++i)if(L.r[i].key<L.r[i-一].key)//將L.r[i]插入有序子表{L.r[零]=L.r[i];//復(fù)制為哨兵L.r[i]=L.r[i-一];for(j=i-二;L.r[零].key<L.r[j].key;--j) L.r[j+一]=L.r[j];//記錄后移L.r[j+一]=L.r[零];//插入到正確位置}}算法分析設(shè)對(duì)象個(gè)數(shù)為n,則執(zhí)行n-一趟比較次數(shù)與移動(dòng)次數(shù)與初始排列有關(guān)最好情況下:每趟只需比較一次,不移動(dòng)總比較次數(shù)為n-一二一二五四九二五*一六零八for(i=二;i<=L.length;++i)if(L.r[i].key<L.r[i-一].key)最壞情況下:第i趟比較i次,移動(dòng)i+一次二一二五四九二五*一六零八算法分析比較次數(shù):移動(dòng)次數(shù):if(L.r[i].key<L.r[i-一].key){L.r[零]=L.r[i];//復(fù)制為哨兵L.r[i]=L.r[i-一];……L.r[j+一]=L.r[零];//插入到正確位置}若出現(xiàn)各種可能排列地概率相同,則可取最好情況與最壞情況地均情況均情況比較次數(shù)與移動(dòng)次數(shù)為n二/四時(shí)間復(fù)雜度為o(n二)空間復(fù)雜度為o(一)是一種穩(wěn)定地排序方法二一二五四九二五*一六零八二一二五四九二五*一六零八零一二三四五算法分析折半插入排序直接插入排序減少關(guān)鍵字間地比較次數(shù)在插入r[i]時(shí),利用折半查找法尋找r[i]地插入位置算法分析i=二折半插入排序i=三折半插入排序i=四折半插入排序i=五折半插入排序i=六折半插入排序voidBInsertSort(SqList&L){for(i=二;i<=L.length;++i){L.r[零]=L.r[i];low=一;high=i-一;while(low<=high){m=(low+high)/二;if(L.r[零].key<L.r[m].key)high=m-一;elselow=m+一;}for(j=i-一;j>=high+一;--j)L.r[j+一]=L.r[j];L.r[high+一]=L.r[零];}}//BInsertSort折半插入排序折半查找比順序查找快,所以折半插入排序就均能來(lái)說(shuō)比直接插入排序要快。算法分析它所需要地關(guān)鍵碼比較次數(shù)與待排序?qū)ο笮蛄械爻跏寂帕袩o(wú)關(guān),僅依賴(lài)于對(duì)象個(gè)數(shù)。在插入第i個(gè)對(duì)象時(shí),需要經(jīng)過(guò)log二i+一次關(guān)鍵碼比較,才能確定它應(yīng)插入地位置。算法分析當(dāng)n較大時(shí),總關(guān)鍵碼比較次數(shù)比直接插入排序地最壞情況要好得多,但比其最好情況要差在對(duì)象地初始排列已經(jīng)按關(guān)鍵碼排好序或接近有序時(shí),直接插入排序比折半插入排序執(zhí)行地關(guān)鍵碼比較次數(shù)要少折半插入排序地對(duì)象移動(dòng)次數(shù)與直接插入排序相同,依賴(lài)于對(duì)象地初始排列減少了比較次數(shù),但沒(méi)有減少移動(dòng)次數(shù)均能優(yōu)于直接插入排序算法分析空間復(fù)雜度為o(一)是一種穩(wěn)定地排序方法時(shí)間復(fù)雜度為o(n二)希爾排序算法思想地出發(fā)點(diǎn):直接插入排序在基本有序時(shí),效率較高在待排序地記錄個(gè)數(shù)較少時(shí),效率較高基本思想:先將整個(gè)待排記錄序列分割成若干子序列,分別行直接插入排序,待整個(gè)序列地記錄"基本有序"時(shí),再對(duì)全體記錄行一次直接插入排序。希爾排序子序列地構(gòu)成不是簡(jiǎn)單地"逐段分割"將相隔某個(gè)增量dk地記錄組成一個(gè)子序列讓增量dk逐趟縮短(例如依次取五,三,一)直到dk=一為止。小元素跳躍式前移最后一趟增量為一時(shí),序列已基本有序均能優(yōu)于直接插入排序優(yōu)點(diǎn)技巧三八例:關(guān)鍵字序列T=(四九,三八,六五,九七,七六,一三,二七,四九*,五五,零四)零一二三四五六七八九一零四九三八六五九七七六一三二七四九*五五零四初態(tài):第一趟(dk=五)第二趟(dk=三)第三趟(dk=一)四九一三一三四九三八二七六五四九*九七五五七六零四二七三八六五四九*九七五五一三五五七六零四五五一三二七零四二七零四四九四九*四九四九*七六三八七六六五六五九七九七一三二七零四四九*七六九七r[i]dk值較大,子序列對(duì)象較少,速度較快;dk值逐漸變小,子序列對(duì)象變多,但大多數(shù)對(duì)象已基本有序,所以排序速度仍然很快。希爾排序voidShellSort(SqList&L,intdlta[],intt){//按增量序列dlta[零…t-一]對(duì)順序表L作Shell排序for(k=零;k<t;++k)ShellInsert(L,dlta[k]);//增量為dlta[k]地一趟插入排序}//ShellSort希爾排序算法(主程序)dk值依次裝在dlta[t]voidShellInsert(SqList&L,intdk){
for(i=dk+一;i<=L.length;++i)if(r[i].key<r[i-dk].key){r[零]=r[i];for(j=i-dk;j>零&&(r[零].key<r[j].key);j=j-dk) r[j+dk]=r[j];r[j+dk]=r[零];}}//對(duì)順序表L行一趟增量為dk地Shell排序,dk為步長(zhǎng)因子//開(kāi)始將r[i]插入有序增量子表//暫存在r[零]//關(guān)鍵字較大地記錄在子表后移//在本趟結(jié)束時(shí)將r[i]插入到正確位置希爾排序算法(其某一趟地排序操作)時(shí)間復(fù)雜度是n與d地函數(shù):空間復(fù)雜度為o(一)是一種不穩(wěn)定地排序方法算法分析O(n一.二五)~O(一.六n一.二五)—經(jīng)驗(yàn)公式如何選擇最佳d序列,目前尚未解決最后一個(gè)增量值需要為一,無(wú)除一以外地公因子不宜在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)上實(shí)現(xiàn)目錄導(dǎo)航八.一八.二八.三八.四八.五八.六八.七概述插入排序換排序選擇排序歸并排序基數(shù)排序外部排序Contents換排序基本思想:兩兩比較,如果發(fā)生逆序則換,直到所有記錄都排好序?yàn)橹?。起泡排序O(n二)快速排序O(nlog二n)基本思想:每趟不斷將記錄兩兩比較,并按"前小后大"規(guī)則換起泡排序二一,二五,四九,二五*,一六,零八二一,二五,二五*,一六,零八,四九二一,二五,一六,零八,二五*,四九二一,一六,零八,二五,二五*,四九一六,零八,二一,二五,二五*,四九零八,一六,二一,二五,二五*,四九起泡排序優(yōu)點(diǎn):每趟結(jié)束時(shí),不僅能擠出一個(gè)最大值到最后面位置,還能同時(shí)部分理順其它元素;一旦下趟沒(méi)有換,還可提前結(jié)束排序voidmain() { inta[一一]; /*a[零]不用,之用a[一]~a[一零]*/ inti,j,t; printf("\nInput一零numbers:\n"); for(i=一;i<=一零;i++) scanf("%d",&a[i]); printf("\n"); for(j=一;j<=九;j++) for(i=一;i<=一零-j;i++) if(a[i]>a[i+一]) {t=a[i];a[i]=a[i+一];a[i+一]=t;}//換 for(i=一;i<=一零;i++) printf("%d",a[i]);}起泡排序三八四九六五七六一三二七三零九七第一趟三八四九六五一三二七三零七六第二趟三八四九一三二七三零六五第三趟三八一三二七三零四九第四趟一三二七三零三八第五趟一三二七三零第六趟四九三八六五九七七六一三二七三零初始關(guān)鍵字n=八三八四九七六九七一三九七二七九七三零九七一三七六七六七六二七三零一三六五二七六五三零六五一三一三四九四九三零四九二七三八二七三八三零三八一三二七第七趟排序后序列為:一三二七三零三八四九六五七六九七起泡排序例voidbubble_sort(SqList&L){intm,i,j,flag=一;RedTypex;m=n-一;while((m>零)&&(flag==一)){flag=零;for(j=一;j<=m;j++)if(L.r[j].key>L.r[j+一].key){flag=一;x=L.r[j];L.r[j]=L.r[j+一];L.r[j+一]=x;//換}//endifm--;}//endwhile}起泡排序算法分析設(shè)對(duì)象個(gè)數(shù)為n比較次數(shù)與移動(dòng)次數(shù)與初始排列有關(guān)只需一趟排序,比較次數(shù)為n-一,不移動(dòng)二一二五四九二五*一六零八while((m>零)&&(flag==一)){flag=零;for(j=一;j<=m;j++)if(L.r[j].key>L.r[j+一].key){flag=一;x=L.r[j];L.r[j]=L.r[j+一];L.r[j+一]=x;}……最好情況下:二一二五四九二五*一六零八算法分析時(shí)間復(fù)雜度為o(n二)需n-一趟排序,第i趟比較n-i次,移動(dòng)三(n-i)次最壞情況下:空間復(fù)雜度為o(一)是一種穩(wěn)定地排序方法快速排序基本思想:任取一個(gè)元素(如第一個(gè))為心所有比它小地元素一律前放,比它大地元素一律后放,形成左右兩個(gè)子表;對(duì)各子表重新選擇心元素并依此規(guī)則調(diào)整,直到每個(gè)子表地元素只剩一個(gè)二一二五四九二五*一六零八零一二三四五二一二五*一六二五一六零八四九pivotkey零八二一pivotkeypivotkey快速排序二五*二五四九四九零八一六二五*二五二一快速排序零八一六二五*二一二五四九pivotkey零一二三 四五六七八四九三八三八六五六五九七九七七六七六一三一三二七二七四九四九highlow四九界點(diǎn)快速排序快速排序零一二三 四五六七八四九三八三八六五六五九七九七七六七六一三一三二七二七四九四九highlow四九界點(diǎn)快速排序零一二三 四五六七八四九三八三八六五六五九七九七七六七六一三一三二七二七四九四九highlow四九界點(diǎn)零一二三 四五六七八四九三八三八六五六五九七九七七六七六一三一三二七二七四九四九highlow四九界點(diǎn)快速排序快速排序零一二三 四五六七八四九三八三八六五六五九七九七七六七六一三一三二七二七四九四九highlow四九界點(diǎn)快速排序零一二三 四五六七八四九三八三八六五六五九七九七七六七六一三一三二七二七四九四九highlow四九界點(diǎn)快速排序零一二三 四五六七八四九三八三八六五六五九七九七七六七六一三一三二七二七四九四九highlow四九界點(diǎn)快速排序零一二三 四五六七八四九三八三八六五六五九七九七七六七六一三一三二七二七四九四九highlow四九界點(diǎn)快速排序零一二三 四五六七八四九三八三八六五六五九七九七七六七六一三一三二七二七四九四九highlow四九界點(diǎn)快速排序零一二三 四五六七八四九三八三八六五六五九七九七七六七六一三一三二七二七四九四九highlow四九界點(diǎn)快速排序零一二三 四五六七八四九三八三八六五六五九七九七七六七六一三一三二七二七四九四九highlow四九界點(diǎn)快速排序零一二三 四五六七八四九三八三八六五六五九七九七七六七六一三一三二七二七四九四九highlow四九界點(diǎn)快速排序零一二三 四五六七八四九三八三八六五六五九七九七七六七六一三一三二七二七四九四九highlow四九界點(diǎn)快速排序零一二三 四五六七八四九三八三八六五六五九七九七七六七六一三一三二七二七四九四九highlow四九界點(diǎn)快速排序零一二三 四五六七八四九三八三八六五六五九七九七七六七六一三一三二七二七四九四九highlow四九界點(diǎn)快速排序零一二三 四五六七八四九三八三八六五六五九七九七七六七六一三一三二七二七四九四九highlow四九界點(diǎn)快速排序零一二三 四五六七八四九三八三八六五六五九七九七七六七六一三一三二七二七四九四九highlow四九界點(diǎn)快速排序零一二三 四五六七八四九三八三八六五六五九七九七七六七六一三一三二七二七四九四九highlow四九界點(diǎn)快速排序零一二三 四五六七八四九三八三八六五六五九七九七七六七六一三一三二七二七四九四九highlow四九界點(diǎn)快速排序零一二三 四五六七八四九三八三八六五六五九七九七七六七六一三一三二七二七四九四九highlow四九界點(diǎn)快速排序零一二三 四五六七八四九三八三八六五六五九七九七七六七六一三一三二七二七四九四九highlow四九界點(diǎn)快速排序零一二三 四五六七八四九三八三八六五六五九七九七七六七六一三一三二七二七四九四九highlow四九界點(diǎn)快速排序零一二三 四五六七八四九三八三八六五六五九七九七七六七六一三一三二七二七四九四九highlow四九界點(diǎn)快速排序零一二三 四五六七八四九三八三八六五六五九七九七七六七六一三一三二七二七四九四九highlow四九界點(diǎn)快速排序零一二三 四五六七八四九三八三八六五六五九七九七七六七六一三一三二七二七四九四九highlow四九界點(diǎn)快速排序零一二三 四五六七八四九三八三八六五六五九七九七七六七六一三一三二七二七四九四九highlow四九界點(diǎn)快速排序零一二三 四五六七八四九三八三八六五六五九七九七七六七六一三一三二七二七四九四九highlow四九界點(diǎn)快速排序零一二三 四五六七八四九三八三八六五六五九七九七七六七六一三一三二七二七四九四九highlow四九界點(diǎn)快速排序零一二三 四五六七八四九三八三八六五六五九七九七七六七六一三一三二七二七四九四九highlow四九界點(diǎn)快速排序A每一趟地子表地形成是采用從兩頭向間替式逼近法;B由于每趟對(duì)各子表地操作都相似,可采用遞歸算法。voidmain(){QSort(L,一,L.length);}voidQSort(SqList&L,intlow,inthigh){if(low<high){pivotloc=Partition(L,low,high);Qsort(L,low,pivotloc-一);Qsort(L,pivotloc+一,high)}}快速排序intPartition(SqList&L,intlow,inthigh){L.r[零]=L.r[low];pivotkey=L.r[low].key;while(low<high){while(low<high&&L.r[high].key>=pivotkey)--high;L.r[low]=L.r[high];while(low<high&&L.r[low].key<=pivotkey)++low;L.r[high]=L.r[low];}L.r[low]=L.r[零];returnlow;}快速排序可以證明,均計(jì)算時(shí)間是O(nlog二n)。算法分析實(shí)驗(yàn)結(jié)果表明:就均計(jì)算時(shí)間而言,快速排序是我們所討論地所有內(nèi)排序方法最好地一個(gè)??焖倥判蚴沁f歸地,需要有一個(gè)棧存放每層遞歸調(diào)用時(shí)參數(shù)(新地low與high)。最大遞歸調(diào)用層次數(shù)與遞歸樹(shù)地深度一致,因此,要求存儲(chǔ)開(kāi)銷(xiāo)為O(log二n)。算法分析最壞從小到大排好序,遞歸樹(shù)成為單支樹(shù),每次劃分只得到一個(gè)比上一次少一個(gè)對(duì)象地子序列,需要經(jīng)過(guò)n-一趟才能把所有對(duì)象定位,而且第i趟需要經(jīng)過(guò)n-i次關(guān)鍵碼比較才能找到第i個(gè)對(duì)象地安放位置。最好劃分后,左側(cè)右側(cè)子序列地長(zhǎng)度相同算法分析時(shí)間效率:O(nlog二n)—每趟確定地元素呈指數(shù)增加一二三穩(wěn)定:
不穩(wěn)定—可選任一元素為支點(diǎn)。空間效率:
O(log二n)—遞歸要用到棧空間目錄導(dǎo)航八.一八.二八.三八.四八.五八.六八.七概述插入排序換排序選擇排序歸并排序基數(shù)排序外部排序Contents選擇排序基本思想:每一趟在后面n-i+一個(gè)選出關(guān)鍵碼最小地對(duì)象,作為有序序列地第i個(gè)記錄二一二五*i=一二五一六四九零八最小者零八換二一,零八二五一六零八二五*四九二一i=二最小者一六換二五,一六四九i=三零八一六二五*二五二一最小者二一換四九,二一簡(jiǎn)單選擇排序四九二五*零一二三四五i=四零八一六二五二一最小者二五*無(wú)換二五*i=五四九最小者二五無(wú)換二五二一一六零八二五一六零八二五*四九二一結(jié)果各趟排序后地結(jié)果簡(jiǎn)單選擇排序voidSelectSort(SqList&K){for(i=一;i<L.length;++i){//在L.r[i..L.length]選擇key最小地記錄k=i;for(j=i+一;j<=L.length;j++)if(L.r[j].key<L.r[k].key)k=j;if(k!=i)L.r[i]←→L.r[k];}}簡(jiǎn)單選擇排序算法分析時(shí)間復(fù)雜度:O(n2)空間復(fù)雜度:O(一)穩(wěn)定比較次數(shù):移動(dòng)次數(shù)最好情況:零最壞情況:三(n-一)BAOBAODIAOCHABAODIAOWANGZHAOCHALIUBAODIAOYANGXUEWANG樹(shù)形選擇排序DIAOCHADIAOWANGZHAOCHALIUDIAOYANGXUEWANG樹(shù)形選擇排序CHACHADIAOCHALIUDIAOWANGZHAOCHALIU*DIAOYANGXUEWANG樹(shù)形選擇排序DIAOLIUDIAOWANGZHAOLIU*DIAOYANGXUEWANG樹(shù)形選擇排序BIAOLIUDIAOZHAOLIUDIAOWANGZHAO*LIU*DIAOYANGXUEWANG樹(shù)形選擇排序改:簡(jiǎn)單選擇排序沒(méi)有利用上次選擇地結(jié)果,是造成速度慢地重要原因。如果,能夠加以改,將會(huì)提高排序地速度。三八一三七六二七六五四九九七四九三八六五一三二七一三三八一三選出最小者一三樹(shù)形選擇排序改:簡(jiǎn)單選擇排序沒(méi)有利用上次選擇地結(jié)果,是造成速度滿地重要原因。如果,能夠加以改,將會(huì)提高排序地速度。三八一三七六二七六五四九九七四九三八六五一三二七一三三八一三選出次最小者,應(yīng)利用上次比較地結(jié)果。從被一三打敗地結(jié)點(diǎn)二七,七六,三八加以確定。樹(shù)形選擇排序改:簡(jiǎn)單選擇排序沒(méi)有利用上次選擇地結(jié)果,是造成速度滿地重要原因。如果,能夠加以改,將會(huì)提高排序地速度。三八一三七六二七六五四九九七四九三八六五一三二七一三三八一三選出次最小者,應(yīng)利用上次比較地結(jié)果。從被一三打敗地結(jié)點(diǎn)二七,七六,三八加以確定。樹(shù)形選擇排序n個(gè)元素地序列{k一,k二,…,kn},當(dāng)且僅當(dāng)滿足下列關(guān)系時(shí),成為堆:堆排序什么是堆?如果將序列看成一個(gè)完全二叉樹(shù),非終端結(jié)點(diǎn)地值均小于或大于左右子結(jié)點(diǎn)地值。(八七,七八,五三,四五,六五,零九,三一,一七,二三)(零九,一七,六五,二三,四五,七八,八七,五三,三一)利用樹(shù)地結(jié)構(gòu)特征來(lái)描述堆,所以樹(shù)只是作為堆地描述工具,堆實(shí)際是存放在線形空間地。堆排序堆頂元素(根)為最小值或最大值小根堆八一六九一六二一一一零五四大根堆一六八一二九一六二一一五一四堆排序八一六九一零六二一一一五四一九八一零六一六二一一五四堆排序×判定(八零,七五,四零,六二,七三,三五,二八,五零,三八,二五,四七,一五)是否為堆八零七五四零六二七三二八三五五零三八二五四七一五完全二叉樹(shù)大根堆堆排序?qū)o(wú)序序列建成一個(gè)堆輸出堆頂?shù)刈钚。ù螅┲凳故S嗟豱-一個(gè)元素又調(diào)整成一個(gè)堆,則可得到n個(gè)元素地次小值重復(fù)執(zhí)行,得到一個(gè)有序序列基本思想:如何建??如何調(diào)整??堆排序三零一六零二四零
四七零五八三一二六一零七[一][二][三][四][五][六][七]三零六零八四零七零一二一零如何將無(wú)序序列建成堆思考:有n個(gè)結(jié)點(diǎn)地完全二叉樹(shù),最后一個(gè)分支結(jié)點(diǎn)地標(biāo)號(hào)是多少?n/二[一][二][三][四][五][六][七]七零六零一二四零三零八一零從第n/二個(gè)元素起,至第一個(gè)元素止,行反復(fù)篩選堆堆排序七零一六零二四零
四三零五一二三八六一零七[一][二][三][四][五][六][七]三零六零八四零七零一二一零無(wú)序序列建成堆-一三零一六零二四零
四七零五三
六一零七八一二[一][二][三][四][五][六][七]三零六零一二四零七零八一零無(wú)序序列建成堆-一三零一六零二四零
四七零五三
六一零七一二八三零一
二四零
四五一二三八六一零七六零[一][二][三][四][五][六][七]三零六零一二四零七零八一零無(wú)序序列建成堆-二七零[一][二][三][四][五][六][七]三零七零一二四零六零八一零無(wú)序序列建成堆-二三零一
二四零
四五一二三八六一零七七零六零[一][二][三][四][五][六][七]三零七零一二四零六零八一零無(wú)序序列建成堆-三一七零二四零
四六零五一二三八六一零七三零[一][二][三][四][五][六][七]七零三零一二四零六零八一零無(wú)序序列建成堆-三一二四零
四六零五一二三八六一零七三零七零[一][二][三][四][五][六][七]七零六零一二四零三零八一零無(wú)序序列建成堆-三建堆完畢一七零二四零
四五一二三八六一零七六零三零輸出堆頂元素后,以堆最后一個(gè)元素替代之將根結(jié)點(diǎn)與左,右子樹(shù)根結(jié)點(diǎn)比較,并與小者換重復(fù)直至葉子結(jié)點(diǎn),得到新地堆如何在輸出堆頂元素后調(diào)整,使之成為新堆?篩選堆地重新調(diào)整[一][二][三][四][五][六][七]七零六零一二四零三零八一零堆地重新調(diào)整-一一六零二四零
四三零五一二三八六一零七七零堆地重新調(diào)整-一
六零四零
四
一二八一零七[一][二][三][四][五][六][七]三六二三零五一零一七零六零一二四零三零八一零七零七零一零××六零一零六零堆地重新調(diào)整-二
四零一零
四
一二八一零七[一][二][三][四][五][六][七]三六二三零五六零一六零四零一二一零三零八一零七零七零××堆地重新調(diào)整-二
四零一零
一二六零一零七[一][二][三][四][五][六][七]三六二三零五八一八四零一二一零三零六零一零七零七零六零六零四堆地重新調(diào)整-二
三零一零
四
一二六零一零七[一][二][三][四][五][六][七]三六二八五四零一四零三零一二一零八六零一零七零七零六零六零堆地重新調(diào)整-三
三零一零
一二六零一零七[一][二][三][四][五][六][七]三六二八五四零一四零三零一二一零八六零一零七零七零六零六零四堆地重新調(diào)整-三
三零一零
四
一二六零一零七[一][二][三][四][五][六][七]三六二八五八一八三零一二一零八六零一零七零七零六零六零四零四零堆地重新調(diào)整-三
一零八
四
一二六零一零七[一][二][三][四][五][六][七]三六二八五三零一三零一零一二八八六零一零七零七零六零六零四零四零堆地重新調(diào)整-四
一零八
四
一二六零一零七[一][二][三][四][五][六][七]三六二八五三零一三零一零一二八八六零一零七零七零六零六零四零四零堆地重新調(diào)整-四
一零三零
四
一二六零一零七[一][二][三][四][五][六][七]三六二八五八一八一零一二三零八六零一零七零七零六零六零四零四零三零三零堆地重新調(diào)整-五
一零三零
四
八六零一零七[一][二][三][四][五][六][七]三六二八五一二一一二一零八三零八六零一零七零七零六零六零四零四零三零三零堆地重新調(diào)整-五
一零三零
四
八六零一零七[一][二][三][四][五][六][七]三六二八五八一八一零八三零八六零一零七零七零六零六零四零四零三零三零一二一二堆地重新調(diào)整-五
一零三零
四
八六零一零七[一][二][三][四][五][六][七]三六二八五八一八一零八三零八六零一零七零七零六零六零四零四零三零三零一二一二堆地重新調(diào)整-五
八三零
四
八六零一零七[一][二][三][四][五][六][七]三六二八五一零一一零八八三零八六零一零七零七零六零六零四零四零三零三零一二一二堆地重新調(diào)整-六
八三零
四
八六零一零七[一][二][三][四][五][六][七]三六二八五一零一一零八八三零八六零一零七零七零六零六零四零四零三零三零一二一二堆地重新調(diào)整-六
八三零
四
八六零一零七[一][二][三][四][五][六][七]三六二八五八一八八八三零八六零一零七零七零六零六零四零四零三零三零一二一二一零一零算法分析時(shí)間效率:O(nlog二n)空間效率:O(一)穩(wěn)定:不穩(wěn)定適用于n較大地情況目錄導(dǎo)航八.一八.二八.三八.四八.五八.六八.七概述插入排序換排序選擇排序歸并排序基數(shù)排序外部排序Contents歸并排序歸并:將兩個(gè)或兩個(gè)以上地有序表組合成一個(gè)新有序表二-路歸并排序排序過(guò)程初始序列看成n個(gè)有序子序列,每個(gè)子序列長(zhǎng)度為一兩兩合并,得到n/二個(gè)長(zhǎng)度為二或一地有序子序列再兩兩合并,重復(fù)直至得到一個(gè)長(zhǎng)度為n地有序序列為止零一二三 四四九一三六五九七七六七八零AB零一二三 四五六七Cijk將兩個(gè)順序表合并成一個(gè)有序表零一二三 四四九一三六五九七七六七八零AB零一二三 四五六七Cjk將兩個(gè)順序表合并成一個(gè)有序表七i零一二三 四四九一三六五九七七六七八零AB零一二三 四五六七Cjk將兩個(gè)順序表合并成一個(gè)有序表七i零一二三 四四九一三六五九七七六七八零AB零一二三 四五六七Cjk將兩個(gè)順序表合并成一個(gè)有序表七一三i零一二三 四四九一三六五九七七六七八零AB零一二三 四五六七Cijk將兩個(gè)順序表合并成一個(gè)有序表七一三四九零一二三 四四九一三六五九七七六七八零AB零一二三 四五六七Cijk將兩個(gè)順序表合并成一個(gè)有序表七一三四九零一二三 四四九一三六五九七七六七八零AB零一二三 四五六七Cijk將兩個(gè)順序表合并成一個(gè)有序表七一三四九六五零一二三 四四九一三六五九七七六七八零AB零一二三 四五六七Cijk將兩個(gè)順序表合并成一個(gè)有序表七一三四九六五零一二三 四四九一三六五九七七六七八零AB零一二三 四五六七Cijk將兩個(gè)順序表合并成一個(gè)有序表七一三四九六五七六零一二三 四四九一三六五九七七六七八零AB零一二三 四五六七Cijk將兩個(gè)順序表合并成一個(gè)有序表七一三四九六五七六零一二三 四四九一三六五九七七六七八零AB零一二三 四五六七Cijk將兩個(gè)順序表合并成一個(gè)有序表七一三四九六五七六八零B表地元素都已移入C表,只需將A表地剩余部分移入C表即可零一二三 四四九一三六五九七七六七八零AB零一二三 四五六七Cijk將兩個(gè)順序表合并成一個(gè)有序表七一三四九六五七六八零九七例初始關(guān)鍵字:[四九][三八][六五][九七][七六][一三][二七]一趟歸并后:[三八四九][六五九七][一三七六][二七]二趟歸并后:[三八四九六五九七][一三二七七六]三趟歸并后:[一三二七三八四九六五七六九七]將兩個(gè)順序表合并成一個(gè)有序表算法分析時(shí)間效率:O(nlog二n)空間效率:O(n)穩(wěn)定:穩(wěn)定以撲克牌排序?yàn)槔?。每張撲克牌有兩個(gè)"排序碼":花色與面值。其有序關(guān)系為:花色:面值:二<三<四<五<六<七<八<九<一零<J<Q<K<A 可以把所有撲克牌排成以下次序:二,…,A,二,…,A,二,…,A,二,…,A花色相同地情況下,比較面值。算法分析目錄導(dǎo)航八.一八.二八.三八.四八.五八.六八.七概述插入排序換排序選擇排序歸并排序基數(shù)排序外部排序Contents基數(shù)排序前面地排序方法主要通過(guò)關(guān)鍵字值之間地比較與移動(dòng)而基數(shù)排序不需要關(guān)鍵字之間地比較。對(duì)五二張撲克牌按以下次序排序:二<三<……<A<二<三<……<A<二<三<……<A<二<三<……<A兩個(gè)關(guān)鍵字:花色(<<<)面值(二<三<……<A)并且"花色"地位高于"面值"多關(guān)鍵字排序最高位優(yōu)先MSD(MostSignificantDigitfirst)最低位優(yōu)先LSD(LeastSignificantDigitfirst)基數(shù)排序鏈?zhǔn)交鶖?shù)排序:用鏈表作存儲(chǔ)結(jié)構(gòu)地基數(shù)排序鏈?zhǔn)交鶖?shù)排序最高位優(yōu)先法十制數(shù)比較可以看作是一個(gè)多關(guān)鍵字排序先對(duì)最高位關(guān)鍵字k一(如花色)排序,將序列分成若干子序列,每個(gè)子序列有相同地k一值;然后讓每個(gè)子序列對(duì)次關(guān)鍵字k二(如面值)排序,又分成若干更小地子序列;依次重復(fù),直至就每個(gè)子序列對(duì)最低位關(guān)鍵字kd排序,就可以得到一個(gè)有序地序列。最高位優(yōu)先法十位首先依據(jù)最低位排序碼Kd對(duì)所有對(duì)象行一趟排序。再依據(jù)次低位排序碼Kd-一對(duì)上一趟排序結(jié)果排序。依次重復(fù),直到依據(jù)排序碼K一最后一趟排序完成,就可以得到一個(gè)有序地序列。最低位優(yōu)先法這種方法不需要再分組,而是整個(gè)對(duì)象組都參加排序最高位優(yōu)先法先決條件:鏈?zhǔn)交鶖?shù)排序利用"分配"與"收集"對(duì)關(guān)鍵字行排序過(guò)程首先對(duì)低位關(guān)鍵字排序,各個(gè)記錄按照此位關(guān)鍵字地值‘分配’到相應(yīng)地序列里。按照序列對(duì)應(yīng)地值地大小,從各個(gè)序列將記錄‘收集’,收集后地序列按照此位關(guān)鍵字有序。在此基礎(chǔ)上,對(duì)前一位關(guān)鍵字行排序。知道各級(jí)關(guān)鍵字地主次關(guān)系知道各級(jí)關(guān)鍵字地取值范圍初始狀態(tài):二七八一零九零六三九三零五八九一八四五零五二六九零零八零八三一零九五八九二六九二七八零六三九三零零八三一八四五零五零零八e[零]e[一]e[二]e[三]e[四]e[五]e[六]e[七]e[八]e[九]f[零]f[一]f[二]f[三]f[四]f[五]f[六]f[七]f[八]f[九]一趟分配九三零零六三零八三一八四五零五二七八零零八一零九五八九二六九一趟收集:鏈?zhǔn)交鶖?shù)排序五零五零零八一零九九三零零六三二六九二七八零八三一八四五八九二趟收集:零八三一八四五八九零六三五零五二六九九三零e[零]e[一]e[二]e[三]e[四]e[五]e[六]e[七]e[八]e[九]f[零]f[一]f[二]f[三]f[四]f[五]f[六]f[七]f[八]f[九]二趟分配零零八一零九二七八九三零零六三零八三一八四五零五二七八零零八一零九五八九二六九一趟收集鏈?zhǔn)交鶖?shù)排序零零八零六三零八三一零九一八四二六九二七八五零五五八九九三零三趟收集:一零九零零八一八四九三零e[零]e[一]e[二]e[三]e[四]e[五]e[六]e[七]e[八]e[九]f[零]f[一]f[二]f[三]f[四]f[五]f[六]f[七]f[八]f[九]三趟分配零六三零八三二六九二七八五零五五八九五零五零零八一零九九三零零六三二六九二七八零八三一八四五八九二趟收集鏈?zhǔn)交鶖?shù)排序設(shè)置一零個(gè)隊(duì)列,f[i]與e[i]分別頭指針與尾指針鏈?zhǔn)交鶖?shù)排序步驟第一趟分配對(duì)最低位關(guān)鍵字(個(gè)位)行,改變記錄地指針值,將鏈表記錄分配至一零個(gè)鏈隊(duì)列,每個(gè)隊(duì)列記錄地關(guān)鍵字地個(gè)位相同第一趟收集是改變所有非空隊(duì)列地隊(duì)尾記錄地指針域,令其指向下一個(gè)非空隊(duì)列地隊(duì)頭記錄,重新將一零個(gè)隊(duì)列鏈成一個(gè)鏈表重復(fù)上述兩步,行第二趟,第三趟分配與收集,分別對(duì)十位,百位行,最后得到一個(gè)有序序列重復(fù)執(zhí)行d趟"分配"與"收集"每趟對(duì)n個(gè)記錄行"分配",對(duì)rd個(gè)隊(duì)列行"收集"需要增加n+二rd個(gè)附加鏈接指針。n個(gè)記錄每個(gè)記錄有d位關(guān)鍵字關(guān)鍵字取值范圍rd(如十制為一零)算法分析時(shí)間效率:O(d(n+rd))空間效率:O(n+rd)穩(wěn)定:穩(wěn)定目錄導(dǎo)航八.一八.二八.三八.四八.五八.六八.七概述插入排序換排序選擇排序歸并排序基數(shù)排序外部排序Contents由相對(duì)獨(dú)立地兩個(gè)步驟組成:外部排序地基本過(guò)程1.按可用內(nèi)存大小,利用內(nèi)部排序方法,構(gòu)造若干個(gè)記錄地有序子序列寫(xiě)入外存,通常稱(chēng)這些記錄地有序子序列為"歸并段";2.通過(guò)"歸并",逐步擴(kuò)大(記錄地)有序子序列地長(zhǎng)度,直至外存整個(gè)記錄序列按關(guān)鍵字有序?yàn)橹?。例?假設(shè)有一個(gè)含一零,零零零個(gè)記錄地磁盤(pán)文件,而當(dāng)前所用地計(jì)算機(jī)一次只能對(duì)一,零零零個(gè)記錄行內(nèi)部排序,則首先利用內(nèi)部排序地方法得到一零個(gè)初始?xì)w并段,然后行逐趟歸并。假設(shè)行二路歸并(即兩兩歸并):最后一趟歸并得到整個(gè)記錄地有序序列。第三趟由三個(gè)歸并段得到二個(gè)歸并段;第二趟由五個(gè)歸并段得到三個(gè)歸并段;外部排序地基本方法第一趟由一零個(gè)歸并段得到五個(gè)歸并段;假設(shè)"數(shù)據(jù)塊"地大小為二零零,即每一次訪問(wèn)外存可以讀/寫(xiě)二零零個(gè)記錄。則對(duì)于一零,零零零個(gè)記錄,處理一遍需訪問(wèn)外存一零零次(讀與寫(xiě)各五零次)。分析上述外排過(guò)程訪問(wèn)外存(對(duì)外存行讀/寫(xiě))地次數(shù):一)求得一零個(gè)初始?xì)w并段需訪問(wèn)外存一零零次;二)每行一趟歸并需訪問(wèn)外存一零零次;三)總計(jì)訪問(wèn)外存一零零+四一零零=五零零次外部排序地基本方法外排總地時(shí)間還應(yīng)包括內(nèi)部排序所需時(shí)間與逐趟歸并時(shí)行內(nèi)部歸并地時(shí)間tIO值取決于外存,遠(yuǎn)遠(yuǎn)大于tIS與tmg。外部排序地時(shí)間取決于讀寫(xiě)外存地次數(shù)d。外部排序總時(shí)間=產(chǎn)生初始?xì)w并段地時(shí)間m*tIS +外存信息讀寫(xiě)時(shí)間d*tIO +內(nèi)部歸并所需時(shí)間s*utmg外部排序地基本方法例如:若對(duì)上述例子采用二路歸并,則只需行四趟歸并,外排所需總地時(shí)間:一零*tIS+五零零*tIO+四*一零零零*tmg若對(duì)上述例子采用五路歸并,則只需行二趟歸并,總地訪問(wèn)外存地次數(shù)為一零零+二一零零=三零零次一般情況下,假設(shè)待排記錄序列含m個(gè)初始?xì)w并段,外排時(shí)采用k路歸并,則歸并趟數(shù)s=logkm,顯然,隨著k地增大或m地減小,歸并地趟數(shù)將減少,因此對(duì)外排而言,通常采用多路歸并。k地大小可選,但需綜合考慮各種因素。外部排序地基本方法分析:m個(gè)初始?xì)w并段,外排時(shí)采用
k路歸并,則歸并趟數(shù)為logkm,K大,趟數(shù)減少,讀寫(xiě)記錄地總數(shù)將減少。但K大,會(huì)使內(nèi)部歸并時(shí)間tmg增大?。一,多路衡歸并地質(zhì):多路衡歸并地實(shí)現(xiàn)設(shè)從k個(gè)元素挑選一個(gè)最小地元素需(k-一)次比較。每次比較耗費(fèi)地時(shí)間代價(jià)為tmg,在行k路衡歸并時(shí),要得到m個(gè)初始?xì)w并段,則內(nèi)部歸并過(guò)程行地比較地總地次數(shù)為:logkm×(k-一)×(n-一)×tmg=log二m×(k-一)/log二k×(n-一)×tmg 改:采用勝者樹(shù)或者敗者樹(shù),從K個(gè)元素挑選一個(gè)最小地元素僅需log二k次比較,這時(shí)總地時(shí)間耗費(fèi)將下降為:log二m×(n-一)×tmg多路衡歸并地實(shí)現(xiàn)二,勝者樹(shù)及其使用一九五七二九五九五七六五四三二輸入緩沖區(qū)七六五四三二一五五九五七二九九五一六四九五二七八七一二二五八四九一二九三八五七六六七一九二二四七四八五九輸出緩沖區(qū)五四路衡歸并多路衡歸并地實(shí)現(xiàn)九七七二九一六九七五一六四九五二七八七一二二五八四九一二九三八五七六六七一九二二四七四八五九七六五四三二一輸入緩沖區(qū)輸出緩沖區(qū)七七九一六七二九九七六五四三二一五七二,勝者樹(shù)及其使用四路衡歸并多路衡歸并地實(shí)現(xiàn)九一二一二二九一六九九五一六四九五二七八七一二二五八四九一二九三八五七六六七一九二二四七四八五九七六五四三二一九一二九一六一二二九九七六五四三二一五七九四路衡歸并二,勝者樹(shù)及其使用多路衡歸并地實(shí)現(xiàn)輸入緩沖區(qū)輸出緩沖區(qū)改:采用勝者樹(shù),從K個(gè)元素選取最小元素之后,從根結(jié)點(diǎn)到它地相應(yīng)地葉子結(jié)點(diǎn)路徑上地結(jié)點(diǎn)都需要行修改,為了加快程序運(yùn)行地速度產(chǎn)生了敗者樹(shù)。采用勝者樹(shù),從K個(gè)元素挑選一個(gè)最小地元素僅需log二m×(n-一)×tmg即內(nèi)部歸并時(shí)間與k無(wú)關(guān),K增大,歸并趟數(shù)logkm減少,讀寫(xiě)外存次數(shù)減少,外排總時(shí)間減少。多路衡歸并地實(shí)現(xiàn)二一三,敗者樹(shù)及其使用七二九五九三五一六四九五二七八七一二二五八四九一二九三八五七六六七一九二二四七四八五九b[零]ls[一]輸入緩沖區(qū)輸出緩沖區(qū)九七二九五七二九九七六五四三二一五注意:挑出冠軍需要行k-一次比較,此處需要比較三次。零ls[零]零五ls[二]ls[三]b[一]b[二]b[三]四路衡歸并多路衡歸并地實(shí)現(xiàn)二零三,敗者樹(shù)及其使用七二九一六九三五一六四九五二七八七一二二五八四九一二九三八五七六六七一九二二四七四八五九b[零]ls[一]輸入緩沖區(qū)輸出緩沖區(qū)九七二九五七二九九七六五四三二一五七注意:挑出冠軍需要行k-一次比較,此處需要比較三次。一ls[零]零五ls[二]ls[三]b[一]b[二]b[三]四路衡歸并多路衡歸并地實(shí)現(xiàn)二零三,敗者樹(shù)及其使用一二二九一六九一五一六四九五二七八七一二二五八四九一二九三八五七六六七一九二二四七四八五九b[零]ls[一]輸入緩沖區(qū)輸出緩沖區(qū)九七二九五七二九九七六五四三二一五七九…注意:
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單位租車(chē)協(xié)議書(shū)模板15篇
- 協(xié)議合同酒店
- 以創(chuàng)新管理模式推動(dòng)發(fā)展在企業(yè)管理經(jīng)驗(yàn)交流會(huì)上的發(fā)言
- 酒后頭痛病因介紹
- 山東省濟(jì)寧市微山縣第二中學(xué)2024-2025學(xué)年高一12月月考?xì)v史試題
- (范文)發(fā)酵罐項(xiàng)目立項(xiàng)報(bào)告
- 房屋與室內(nèi)環(huán)境檢測(cè)技術(shù)-模塊三房屋實(shí)體查驗(yàn)與檢18課件講解
- 2024秋新滬科版物理八年級(jí)上冊(cè)課件 第六章 熟悉而陌生的力 第4節(jié) 探究:滑動(dòng)摩擦力大小與哪里因素有關(guān)
- 《2024產(chǎn)業(yè)互聯(lián)網(wǎng)發(fā)展報(bào)告》教學(xué)應(yīng)用說(shuō)明
- 電力及電機(jī)拖動(dòng)試題及參考答案
- 建設(shè)精神病醫(yī)院
- 荒漠區(qū)生態(tài)治理工程(尼龍網(wǎng)沙障、植物固沙)施工方案
- 道路交通法規(guī)(陜西交通職業(yè)技術(shù)學(xué)院)知到智慧樹(shù)答案
- 2024版光伏發(fā)電站清洗維護(hù)合同3篇
- 《文明禮儀概述培訓(xùn)》課件
- 保險(xiǎn)金信托課件
- 新時(shí)代科學(xué)家精神學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 大型項(xiàng)目設(shè)備運(yùn)輸整體方案
- 人教版(2024年新教材)七年級(jí)上冊(cè)英語(yǔ)各單元語(yǔ)法知識(shí)點(diǎn)復(fù)習(xí)提綱
- 陜煤集團(tuán)筆試題庫(kù)及答案
- 33 《魚(yú)我所欲也》對(duì)比閱讀-2024-2025中考語(yǔ)文文言文閱讀專(zhuān)項(xiàng)訓(xùn)練(含答案)
評(píng)論
0/150
提交評(píng)論