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

正文內(nèi)容

數(shù)據(jù)結(jié)構(gòu)排序ppt課件-資料下載頁

2024-11-03 22:17本頁面
  

【正文】 素替代 之,如圖 (b)所示。此時(shí),根結(jié)點(diǎn)的 左、右子樹均為堆 ,則僅需自上而下 進(jìn)行調(diào)整 即可。首先以堆頂元素和其 左、右子樹 根結(jié)點(diǎn)的 較小值 27比較 ,因堆頂元素 97大,所以二者交換。交換之后又破壞右子樹“堆”,則需要進(jìn)行和上述相同的調(diào)整,直至樹葉 (如圖 (c)所示 )或調(diào)整后子樹的“堆”沒有被破壞結(jié)束。 圖 輸出堆頂元素并調(diào)整建成新堆的過程 稱這個(gè)自堆頂至樹葉的調(diào)整過程為“篩選” 現(xiàn)在討論第一個(gè)問題,即將一個(gè)待 排序序列 建成一個(gè)堆的過程,該 過程 就是一個(gè) 反復(fù)“篩選” 的過程。此時(shí)將 序列 看成一個(gè) 完全二叉樹 ,并且樹 最后一個(gè)非終端結(jié)點(diǎn) 是序列的 第 trunc(n/2)個(gè)元素,在該元素開始到序列第一個(gè)元素的區(qū)間里, 依次 以 每一個(gè)元素作為堆頂進(jìn)行一次“篩選” ,可將待排序序列建成一個(gè)堆。 例如,有一組關(guān)鍵字序列為 {49,38,65,97,76,13,27,49}, 將這 8個(gè)關(guān)鍵字建成一個(gè)堆的過程如圖 。 稱這個(gè)自堆頂至樹葉的調(diào)整過程為“篩選” 圖 將待排序列建成堆的過程 算法 堆排序算法。 void heapshift(NODE array[],int i,int n) /* 對以 array[i]為頂?shù)亩?,進(jìn)行篩選, n為待排序列長度 */ { NODE temp=array[i]。 int j=2*i+1。 /* j為結(jié)點(diǎn) i左孩子的下標(biāo) */ while(jn) { if(j+1n amp。amp。 array[j].keyarray[j+1].key) j++。 /* j為結(jié)點(diǎn) i左右孩子中較小者的下標(biāo) */ if(array[j].key) { array[i]=array[j]。 i=j。 j=2*i+1。 } else break。 /* 篩選結(jié)束 */ } array[i]=temp。 /* array[i]是 temp應(yīng)在的位置 */ } 未完結(jié)下一頁 void heapsort(NODE array[],int n) /* 對存放在 array[]中,長度為 n的序列進(jìn)行對排序 */ { int i。 NODE temp。 for(i=n/21。i=0。i) heapshift(array,i,n)。 /* 以每一個(gè)非終端結(jié)點(diǎn)為堆頂,篩選建立堆 */ for(i=n1。i0。i) { temp=array[0]。array[0]=a[i]。 a[i]=temp。 /* 將最小值交換至數(shù)組末尾 */ /* 從 array[0]開始在 array[0]到 array[i1]之間篩選 */ heapshift(a,0,i)。 } } 堆排序的時(shí)間復(fù)雜度 O(nlog2n),它是一種不穩(wěn)定的排序方法。 歸并排序 歸并是將兩個(gè)有序序列歸并為一個(gè)有序序列。將 2路歸并的思想用于有 n個(gè)記錄的待排序列中,就得到歸并排序。首先,把 n個(gè)記錄看成是長度為 1有序表,將它們兩兩歸并,得到長度為 2的若干個(gè)有序子表,重復(fù)上述過程,直到得到長度為 n的有序表為止。 例如,有一組關(guān)鍵字序列為 {49,38,65,97,76,13,27} 對這 7個(gè)關(guān)鍵字進(jìn)行歸并排序的過程如圖 。 下標(biāo) 0 1 2 3 4 5 6 初始關(guān)鍵字 [49] [38] [65] [97] [76] [13] [27] └┬┘ └┬┘ └┬┘ 一趟歸并之后 [38 49] [65 97] [76 13] [27] └┬┘ └┬┘ 二趟歸并之后 [38 49 65 97] [13 27 76] └┬┘ 三趟歸并之后 [13 17 38 49 65 76 97] 圖 2路歸并排序的示例 歸并排序的時(shí)間復(fù)雜度為 O(log2n),是一種穩(wěn)定的排序方法,但該算法所占用空間較大,需要一個(gè)與待排序列相同的輔助空間。具體算法由讀者根據(jù)兩個(gè)有序序列歸并算法,即“平移指針,一次掃描”的算法,自己完成。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1