freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

綜合排序正式論word版(參考版)

2025-01-11 08:48本頁面
  

【正文】 也讓自己對數(shù)據(jù)結(jié)構(gòu)這門課程有了更好的認(rèn)識 ,相信在越來越多的嘗試之后,自己會不斷進(jìn)步不斷提高的。 在這次的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計中,我此次的題目是各種 排序,排序?qū)嶋H上是編程設(shè)計中應(yīng)用比較廣泛的知識,通過本次設(shè)計,我對一些基本的內(nèi)部排序有了很好的理解和掌握,并且通過此次課程設(shè)計中的程序運(yùn)行結(jié)果很好的理解了排序各種算法的穩(wěn)定性和時間復(fù)雜度,既鞏固了課堂上學(xué)到的排序理論,又為自己的編程增強(qiáng)了實踐。這次實驗中我們也出現(xiàn)過一些錯誤。只有真正理解定義數(shù)據(jù)類型的好處,才能用好這樣一種數(shù)據(jù)結(jié)構(gòu)。這樣無形中就提高了自己編寫的程序的質(zhì)量。最后在編寫每一個函數(shù)之前,可以仔細(xì)斟酌比對,挑選出最適合當(dāng)前狀況的算法。 我們感受最深的一點(diǎn)是:以前用 C 編程,只是注重如何編寫函數(shù)能夠完成所需要的功能,似乎沒有明確的戰(zhàn)術(shù),只是憑單 純的意識和簡單的語句來堆砌出一段程序。有的適用于 N 較大的情況,有的適用于 N 較小的情況,因此,在實用時需根據(jù)不同情況適當(dāng)選用,甚至可將多種方法結(jié)合起來使用??焖倥判蚴悄壳盎?于 比較的內(nèi)部排序法中被認(rèn)為是最好的方法。當(dāng) n 較小時,對穩(wěn)定性不作要求時宜用選擇排序,對穩(wěn)定性有要求時宜用插入或冒泡排序。由以上運(yùn)行結(jié)果可分析出穩(wěn)定排序有 直接插入排序 和 冒泡排序 ,不穩(wěn)定排序有選擇排序,希爾排序和快速排序。 ) 測試數(shù)據(jù)的設(shè)計 本程序的測試數(shù)據(jù)隨機(jī)生成 0 到 200 之內(nèi)的數(shù)據(jù) 圖 生成測試數(shù)據(jù),進(jìn)入排序系統(tǒng) 第 31 頁 共 38 頁 程序運(yùn)行結(jié)果分析 1 選擇排序 2 直接插入排序 3希爾排序 4冒泡排序 第 32 頁 共 38 頁 5快速排序 6堆排序 第 33 頁 共 38 頁 7折半插入排序 第 34 頁 共 38 頁 8比較上述排序 分別測試幾組帶排序序列個數(shù)不同的序列,排序比較如下: 圖為: 5個數(shù)字排序比較結(jié)果 第 35 頁 共 38 頁 圖為: 9個數(shù)字排序比較結(jié)果 圖為: 20個數(shù)字排序比較結(jié)果 第 36 頁 共 38 頁 圖為: 100個數(shù)字排序比較結(jié)果 圖為: 200個數(shù)字排序比較結(jié)果 分析: 由以上運(yùn)行結(jié)果可以看出排序算法的穩(wěn)定性和其時間復(fù)雜度。要求測試數(shù)據(jù)能全面地測試所設(shè)計程序的功能。 }while(1)。) break。||c==39。 if(c==39。 getchar()。 }while(1)。 break。 case 9: //更改數(shù)據(jù) break。 flag=0。 QuickSort(L)。 ShellSort(L,dlta,4)。 select_sort(L)。 //折半插入排序 break。 break。//堆排序 printf(最終排序結(jié)果為 :)。 //快速排序 break。 //冒泡排序 break。 //希爾排序 break。 //直接插入排序 break。 //選擇排序 break。 switch (select) { case 0:exit(0)。 scanf(%d,amp。 printf( ★ ★ ★ ★ ★ ★ \n )。 printf( ★ 1 選擇排序 排序 ★ \n )。 visit(L)。L,length)。length)。 do { printf(請輸入需排序的數(shù)據(jù) 個數(shù) (小于 200): \n)。 int select,length。 printf(\t\t ★★★★★★★★★★★★★★★★★★★★★ \n)。 printf(\t\t ★ 本組數(shù)據(jù)排序方法比較表 ★ \n)。 printf(\n\t\t ★★★★★★★★★★★★★★★★★★★★★ \n)。 printf(\t|折 半插入排序 | %5d | %5d |\n,num[12],num[13])。 printf(\t|快速排序 | %5d | %5d |\n,num[8],num[9])。 printf(\t|希爾排序 | %5d | %5d |\n,num[4],num[5])。 printf(\t|選擇排序 | %5d | %5d |\n,num[0],num[1])。 printf(\t|排序方法 | 關(guān)鍵字移動次數(shù) |關(guān)鍵字比較次數(shù) |\n)。} } // BInsertSort void print(int num[]) //打印排序方法比較表 { int k=0。 } else{num[12]=。 printf(折半插入排序后的結(jié)果 : )。 printf(**本次排序的比較次數(shù)為 :)。 } if(!flag) { printf(**本次排序的移動次數(shù)為 :)。 } [high+1] = [0]。 j) {[j+1] = [j]。 } } for (j=i1。 // 插入點(diǎn)在高半?yún)^(qū) =+1。 = +1。 // 折半 if ([0].key[m].key) { high = m1。 while (low=high) { // ++。 // 將 [i]暫存到 [0] low = 1。 i=。 int i,j,high,low,m。 =0。 Recode r。} } } // HeapSort void BInsertSort(SqList amp。 } else{num[10]=。 printf(堆排序后的結(jié)果 : )。 printf(**本次排序的比較次數(shù)為 :)。 // 對 [1] 進(jìn)行篩選 if(!flag) { printf(**本次排序的移動次數(shù)為 :)。 = +3。 [1]=[i]。 if (i!=1) {/*交換順序 */ //++。 i ) { ++。 // 建小頂堆 } for ( i=。 i ) { ++。 第 26 頁 共 38 頁 // 對順序表 L 進(jìn)行堆排序 for (int i=。 =0。L ) { Recode r。 // 將調(diào)整前的堆頂記錄插入到 s (注意插入的位置為 s j=2*s) ++。 ++。 // 再作“根”和“子樹根”之間的比較, // 若“ =”成立,則說明已找到 rc 的插 // 入位置 s ,不需要繼續(xù)往下調(diào)整 [s] = [j]。 ++。amp。 ++。 j=m。 rc = [s]。 =0。L, int s, int m) { // 已知 [s..m]中記錄的關(guān)鍵字除 [s] 之外 //均滿足堆的特征,本函數(shù)自上而下調(diào)整 [s] //的關(guān)鍵字,使 [s..m] 也成為一個大頂堆 Recode r。num[9]=。 visit(L)。 printf(%d\n,)。 printf(%d\n,)。r)。 QSort(amp。 =0。 //對低子表遞歸排序 , pivotloc是樞軸位置 QSort(L,pivotloc+1,high,r)。 pivotloc=Partition(L,low,high,r)。 //返回樞軸位置 } void QSort(SqList *L,int low,int high,Recode *r) { int pivotloc。 //樞軸記錄到位 rmove ++。 //將比樞軸記錄大的記錄移到高端 rmove =rmove+2。 rp++。amp。} Lr[low]=Lr[high]。Lr[high].key =pivotkey){ high。 while(lowhigh) //從表的兩端交替的向中間掃描 { while(lowhighamp。 //用子表的第一個記錄作樞軸記錄 pivotkey=Lr[low].key。} } //快速排序法 int Partition(SqList *L,int low,int high,Recode *r) { int pivotkey。 } else{num[6]=。
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1