1810.1排序(con.t).pptVIP

  • 10
  • 0
  • 约7.32千字
  • 约 40页
  • 2017-06-11 发布于江苏
  • 举报
1810.1排序(con.t)

第十章 排序與搜尋 目次 10.1 排序 10.2 搜尋 10.3 雜湊法 10.4 Trie 10.5 八字形的樹 10.6 動動腦時間 10.7 練習題解答 10.1 排序 排序(sorting) 將一堆雜亂無章的資料由小至大(Ascending)或由大至小(decending)排列之 排序的方法 內部排序(internal sort):記錄是在主記憶體(main memory)中進行分類 外部排序(external sort):借助輔助記憶體,如磁碟或磁帶來進行分類 10.1 排序 (con.t) 另外的排序方式 比較排序(comparative sort):排序方式是比較整個鍵值 分配排序(distributive sort):一次只比較鍵值的某一位數 穩定性(stable) 對於兩個相等鍵值k(i) = k(j)的記錄r(i)和r(j),如果在原始檔案中,r(i)排在r(j)之前;而在排序後,檔案中的r(i)仍在r(j)之前 不穩定性(unstable) r(j)在r(i)之前 10.1 排序 (con.t) 10.1.1 氣泡排序 氣泡排序(bubble sort) 又稱交換排序(interchange sort) 相鄰兩個相比,假使前一個比後一個大時,則互相對調 通常有 n 個資料時最多需要做 n–1 次掃瞄,一次掃瞄完後,資料量減少1,當沒有對調時,就表示已排序好了 氣泡排序的特性 氣泡排序是stable 最壞時間與平均時間複雜度均為O(n2),所需要額外空間也很少 10.1 排序 (con.t) 5個資料,分別是18, 2, 20, 34, 12 氣泡排序的步驟如下: 10.1 排序 (con.t) 10.1 排序 (con.t) 10.1.2 選擇排序 選擇排序(selection sort) 首先在所有的資料中挑選一個最小的鍵值,將其放置在第一個位置(因為由小到大排序) 之後,再從第二個開始挑選一個最小的鍵值放置於第二個位置一直下去 假設有n個記錄,則最多需要n–1次對調,以及n(n–1)/2次比較 10.1 排序 (con.t) 選擇排序跟氣泡排序一樣是穩定性的, 最壞時間與平均時間複雜度都是O(n2),所需要的額外空間亦很少 10.1 排序 (con.t) 10.1.3 插入排序 插入排序(insertion sort) 將加入的資料置於適當的位置,如下圖所示: 插入排序是stable,最壞時間與平均時間複雜度為O(n2),所需額外空間很少 10.1 排序 (con.t) 10.1.4 合併排序 合併排序(merge sort) 將兩個或兩個以上已排序好的檔案,合併成一個大的已排序好的檔案 有兩個檔案分別為甲={2, 10, 12, 18, 25},乙= {6, 16, 20, 32, 34};合併排序過程如下: 甲的第一個資料是2,而乙的第一個資料是6,由於2小於6,故將2寫入丙的第一個資料; 甲的第二個資料是10,10比6大,故6寫入丙的第二個資料; 乙的第二個資料為16,16比10大,故10寫入丙的第三個資料; 以此類推,最後丙檔案為{2, 6, 10, 12, 16, 18, 20, 25, 32, 34} 10.1 排序 (con.t) 10.1.5 快速排序 快速排序(quick sort) 又稱為劃分交換排序(partition exchange sorting) 平均時間而言,快速排序是所有排序中效率不錯的方法 假設有 n 個資料 R1, R2, R3, …, Rn,其鍵值為 K1, K2, K3, …, Kn。快速排序法其步驟如下: 以第一個記錄的鍵值 k1 做基準 K 由左至右 i = 2, 3, …, n,一直找到ki≧K。 由右至左 j = n, n–1, n–2, …, 2,一直找到kj≦K。 當i j時,Ri 與 Rj 互換,否則 R1 與 Rj 互換 10.1 排序 (con.t) 10.1.5 堆積排序 堆積的特性 父節點皆大於其子節點,而不必管左子節點和右子節點之間的大小 堆積排序 unstable,平均時間與最壞時間複雜度是O(nlog2n),所需的額外空間很少 10.1 排序 (con.t) 假設有一棵二元樹如下: 現在我們要將此十個資料利用堆積排序由大至小排序之 10.1 排序 (con.t) 首先,先將二元樹轉換成heap,如下所示: 第1個節點資料80最大,此時80與第10個(最後一個)的鍵值資料 7 對調,對調之後,最後一個資料就固定不動,下面調整時資料量已減少1個 10.1 排序 (con.t) 因此i=

文档评论(0)

1亿VIP精品文档

相关文档