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

正文內(nèi)容

第2章查找和排序-資料下載頁

2024-09-01 09:16本頁面

【導讀】順序表結(jié)構(gòu)、鏈式結(jié)構(gòu)、樹形結(jié)構(gòu)等。查找往往根據(jù)數(shù)據(jù)元素的某個屬性進行。根據(jù)學號查找某個學生記錄。程中就不會改變。它所對應的查找算法屬于靜態(tài)。中仍會改變查找表的內(nèi)容。動態(tài)查找的例子——詞匯統(tǒng)計問題。表中并設使用次數(shù)為一次。顯然,這個查找表是。平均查找長度ASL的計算方法為:。n為表長;Pi為查找第i個元素的概率。記錄時,曾和給定值比較過的數(shù)據(jù)元素的個數(shù)。功,同時給出該數(shù)據(jù)元素在表中的位置,–step1從第1個元素開始查找;的位置,否則返回0。時間幾乎增加一倍。據(jù)key作為監(jiān)視哨。因為循環(huán)查找過程至少會在0號單元停止,對結(jié)點的邏輯次序和存儲結(jié)構(gòu)(順序、鏈表均。當序列中記錄“基本有序”或N值較小時,是較好的算法;縮小為左半部分,否則為右半部分。顯減少比較次數(shù),提高查找效率。–step1首先確定整個查找區(qū)間的中間位置,若相等,則查找成功;若小于,則在前半?yún)^(qū)域繼續(xù)進行二分查找。

  

【正文】 ,被稱為 “ 分區(qū)交換排序 ” 。 下一頁 上一頁 停止放映 [第 65頁 /81] 快速排序基本思想 ? 在待排序序列中按某種方法選取一個元素 K, 以它為分界點 , 用交換的方法將序列分為兩個部分:比該值小的放在左邊 , 否則在右邊 。 形成 {左子序列 }K{右子序列 } 再分別對左 、 右兩部分實施上述分解過程 , 直到各子序列長度為 1, 即有序為止 。 ? 分界點元素值 K的選取方法不同 , 將構(gòu)成不同的排序法 ,也將影響排序的效率: – 取左邊第 1個元素為分界點; – 取中點 A[( left+right) /2]為分界點; – 選取最大和最小值的平均值為分界點等 。 ? 設有序列 {a1, a2, … ,an},選取中點元素 K為分界點 ,分別從序列兩頭分別與 K進行比較 ,小于 K的元素交換到左邊 ,否則交換到右邊 。一趟處理后 ,左邊子序列的元素均小于分界點值 K,右邊子序列元素均大于等于 K值 。 下一頁 上一頁 停止放映 [第 66頁 /81] 快速排序算法 ? Step1 分別從兩端開始 , 指針 i指向第一個元素 A[left],指針 j指向最后一個元素 A[right], 分界點取 K ; ? Step2 循環(huán) ( i?j) – 從右邊開始進行比較: 若 K ? A[j], 則將 A[j]交換到左邊; 若 K 〈 A[j] , 則 j=j1, 再進行比較; – 從左邊開始進行比較: 若 K 〉 A[i], 則 i=i+1, 再進行比較; 若 K ? A[i], 則將 A[i]交換到右邊 。 – 當 i=j時 , 一次分解操作完成 。 ? Step3 在對分解出的左 、 右兩個子序列按上述步驟繼續(xù)進行分解 , 直到子序列長度為 1( 不可再分 ) 為止 , 也即序列全部有序 。 下一頁 上一頁 停止放映 [第 67頁 /81] 快速排序算法舉例 對于數(shù)列 {49, 38, 60, 90, 70, 15, 30, 49}, 采用中點分界法: 初始狀態(tài) : 49 38 60 90 70 15 30 49 比較次數(shù) 第 1趟 49 38 60 90 70 15 30 49 49 38 60 90 70 15 30 49 5( i j1) 49 38 60 49 70 15 30 90 5( i j1) { 49 38 60 49 70 15 30 } 90 小計: 10 i k = 90 j i j j i 下一頁 上一頁 停止放映 [第 68頁 /81] 快速排序算法舉例(續(xù)一) 初始狀態(tài) : 49 38 60 49 70 15 30 比較次數(shù) 第 2趟 49 38 60 49 70 15 30 2( i j1) 30 38 60 49 70 15 49 30 38 60 49 70 15 49 30 38 15 49 70 60 49 { 30 38 15}49{ 70 60 49 } 小計: 8 i j k = 49 j i i j 3( i j1) i j 3( i j2) 下一頁 上一頁 停止放映 [第 69頁 /81] 快速排序算法舉例(續(xù)二) 初始狀態(tài) : 30 38 15 比較次數(shù) 第 3趟 30 38 15 3( i j1) { 30, 15 } 38 小計: 3 第 4趟 70 60 49 2( i j1) 49 60 70 2( i j1) 小計: 4 k = 38 i j j i k = 60 j i j i 下一頁 上一頁 停止放映 [第 70頁 /81] 快速排序算法舉例(續(xù)三) 初始狀態(tài) : 30 15 比較次數(shù) 第 5趟 30 15 2( i j1) 15 30 小計: 2 最后狀態(tài): { 15 30 38 49 49 60 70 90 } 總計: 27 k = 30 i j 下一頁 上一頁 停止放映 [第 71頁 /81] 快速排序算法 quick_sort(item,count) int *item,count。 { qs(item,0,count1)。 } 下一頁 上一頁 停止放映 [第 72頁 /81] qs() 子函數(shù) qs(int *item,int left,int right) { int i,j,x,y,k。 i=left。 j=right。 x=item[(left+right)/2]。 /* 計算中點位置 */ do{ /* i≤j 的循環(huán)處理 */ while(item[i]x amp。amp。 iright ) i++ ; /* 確定 i點交換位置 */ while(xitem[j] amp。amp。 jleft) j。 /* 確定 j點交換位置 */ if(i=j) /* 如果 i、 j位置合法,則交換 */ { y=item[i]。 /* A[i]和 A[j]的位置 */ item[i]=item[j]。 item[j]=y。 i++。 j。 } } while(i=j)。 if(leftj) qs(item,left,j)。 /* 對分割出的左部再處理 */ if(iright) qs(item,i,right)。 /* 對分割出的右部再處理 */ } 下一頁 上一頁 停止放映 [第 73頁 /81] 算法討論 分界點選取方法不同,排序效果差異很大; 比較次數(shù)為 nlogn,即為: O( nlogn),交換次數(shù)為 n/6*logn。 快速排序算法是不穩(wěn)定的。 示例 下一頁 上一頁 停止放映 [第 74頁 /81] 歸并排序 歸并 ( Merge) 排序法是將兩個 ( 或兩個以上 )有序表合并成一個新的有序表;即把待排序序列分為若干個子序列 , 每個子序列是有序的 。然后再把有序子序列合并為整體有序序列 。 將已有序的子序列合并,得到完全有序的序列;即先使每個子序列有序,再使子序列段間有序。若將兩個有序表合并成一個有序表,稱為 2路歸并。 下一頁 上一頁 停止放映 [第 75頁 /81] 歸并排序 Step1 把待排序的 n個記錄看作是長度為 1的有序序列 。 將相鄰子序列兩兩歸并為長度為 2的有序序列; Step2 把得到的 n/2個長度為 2的有序子序列再歸并為長度為 2*2 的有序序列; Step3 按 Step2的方式 , 重復對相鄰有序子序列進行歸并操作 , 直到成為一個有序序列為止 。 下一頁 上一頁 停止放映 [第 76頁 /81] 歸并排序算法簡述 設有待排序數(shù)列 {49, 38, 65, 97, 76, 12, 27}, 第一趟處理 , 先將每個元素看成是有序的子序列 , [49] [38] [65] [97] [76] [12] [27] 第二趟處理 , 將長度為 1的子序列合并為長度為 2的子序列 , [38 , 49] [65, 97] [12 , 76] [ 27 ] 第三趟處理,將長度為 2的子序列合并為長度為 4的子序列, [38 , 49 , 65, 97] [12 , 27, 76 ] 第四趟處理,將長度為 4的子序列合并為長度為 8的序列, [12, 27, 38 , 49 , 65, 76, 97] 提示:將歸并過程中貢獻出的元素,送進工作單元( SWAP[m])中。 下一頁 上一頁 停止放映 [第 77頁 /81] 歸并排序算法舉例 設有數(shù)列 {6, 202, 100, 301, 38, 8, 1}, 初始狀態(tài): [6] [202] [100] [301] [38] [8] [1] 比較次數(shù) i=1 [6 202 ] [ 100 301] [ 8 38] [ 1 ] 3 i=2 [ 6 100 202 301 ] [ 1 8 38 ] 4 i=3 [ 1 6 8 38 100 202 301 ] 4 總計: 11 SWAP數(shù)組: SWAP數(shù)組: 100 6 301 202 1 8 38 1 6 8 38 100 202 301 示例 下一頁 上一頁 停止放映 [第 78頁 /81] 第 2章 作業(yè) ? 習題二、三、四 ? 實驗 二叉排序樹的生成和遍歷(前、中、后序) ? 下周安排兩次上機(周一、周四)
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1