排序演算法的分析.pptVIP

  • 5
  • 0
  • 约4.35千字
  • 约 35页
  • 2017-09-04 发布于重庆
  • 举报
* 範例 合併排序法(Merge Sort) 想法 若 |A| = 1, 資料已被排序,則完成。 否則: 由這兩個已排序子序列來 建構出一已排序序列。 將輸入資料分割成兩個大小 相等的部分。 遞迴地排序此兩部分。 合併程序 ● 分別複製A[p..q]與A[q + 1..r] 到暫存陣列 L 與 R: 1 n1 ← q – p + r 2 n2 ← r – q 3 for i = 1..n1 4 do L[i] ← A[p + i – 1] 5 for j = 1..n2 6 do R[j] ← A[q + j] ● 以人為方式創造兩個終點標記使其不會被複製到 A: 7 L[n1 + 1] ← ∞ 8 R[n2 + 1] ← ∞ ● 重複地從 L 與 R中複製最小元素到 A: 9 i ← 1 10 j ← 1 11 for k = p..r 12 do if L[i] ≤ R[j] 13 then A[k] ← L[i] 14 i ← i + 1 15 else A[k] ← R[j] 16 j ← j + 1 Merge(A, p, q, r) 合併程序(Merge Sort) 演算法 MergeSort(A, p, r) 1 if p r 2

文档评论(0)

1亿VIP精品文档

相关文档