能有效率地排序小数字的演算法ppt课件_第1页
能有效率地排序小数字的演算法ppt课件_第2页
能有效率地排序小数字的演算法ppt课件_第3页
能有效率地排序小数字的演算法ppt课件_第4页
能有效率地排序小数字的演算法ppt课件_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Chapter 2Getting Started2.1 Insertion Sort: 能有效率地排序小數字的演算法範例:5246132546132456132456131245631234562.2 Analyzing AlgorithmsRAM: Random-access machine, 在此機器上執行記憶體存取只需一單位的時間,且指令是依序一個一個執行。Running time: 執行的步驟的總數量,以 input size 的函數來表示之。範例: Insertion SortInsertion-Sort(A)1 for j 2 to lengthA2 do key Aj3 inse

2、rt Aj into the sortedsequence A1.j - 14i j 15while i 0 and Ai key6do Ai + 1 Ai7i i 18Ai + 1 keyT(n) = c1n+(c2+c4+c8)(n-1)+c5 +(c6+c7)costc1c20c4c5c6c7c8timesnn - 1n - 1n - 1n - 1Best-case:Each tj=1. (輸入 A 是排序好的)T(n) =(c1+c2+c4+c5+c8)n-(c2+c4+c5+c8) =(n)(rate of growth, order of growth)Worst-case: (u

3、pper bound)Each tj=j.T(n) =k1n2 + k2n + k3 =(n2)Average-case: (Expected running time)Each tj=j/2T(n) =t1n2 + t2n + t3 =(n2)(rate of growth, order of growth)2.3 Designing AlgorithmsDivide-and-Conquer:Divide:(把大問題切成幾個比較小的一样問題)Conquer:(解決問題)Combine:(把小問題的解合成大問題的解)範例: Merge Sort1223456624561236254613265

4、2461362sorted sequencemergemergemergemergemergemergemerge被合併起來的排序好的數列長度會由下往上遞增。(例如:最底層為 1,倒數第二層為 2,最上層則為 8)Analysis: (recurrence)T(n)= (nlog n)ExercisesProblem 1:給定一行文字,請他幫忙列出 ASCII 字元的出現頻率。他可以假設 ASCII 前 32 個字元以及後 128 個字元不會出現。每一行文字的後面能够會以 n 和 r 結束,但是不用把那些字元考慮進去。輸入:會給好幾行文字。每一行的長度最大會到 1000。輸入以檔案結尾為結束。

5、輸出:對於每一行輸入,根據出現的頻率高低印出 ASCII 字元的 ASCII 值以及該字元出現的頻率(頻率高的先印)。在每組輸出之間要印一個空行。假设兩個 ASCII 字元有一样的頻率,那麼 ASCII 值比較小的優先印出。以下是一個輸出入的實例:Sample InputSample OutputAAABBC12233367 166 265 349 150 251 3ExercisesProblem 2:測量一個序列“亂的程度的方法是算出有幾對數字不是按照順序排好的。例如,在序列DAABEC中,按照上面的度量方法亂度是 5,因為 D 比它右邊的四個字母還大,E 也比右邊的一個字母大。其實這亂度

6、的算法就是這個序列的 inversion 數目。序列AACEDGG只需一個 inversion (E 和 D),幾乎是排序好的;然而ZWQM有六個 inversion (幾乎沒有排序,事實上正好是排序好的相反) 。他負責要分類一堆 DNA 序列序列只由 A, T, C, G 四個字母構成。然而,他不是要根據字典順序排序這些序列,而是要根據他們的不亂程度,從最接近排序好的序列到幾乎沒有排序好的序列依序列出。一切的序列都有一样的長度。Exercises輸入:第一行是一個整數 M,然後在一個空行之後會接著 M 組測資。在每組測資之間會有一個空行當作間隔。每組測資的第一行包含兩個兩個正整數:n (0 n 50) 表示序列的長度;m (0 m 100) 表示序列的總數。接下來會有 m 行,每一行都是長度為 n 的 DNA 序列。輸出:對於每一組測資,從最接近排序好的序列排到幾乎沒有排序過的序列。假设兩個序列的亂度一样,先在輸入檔出現的要先印出。以下是一個輸出入的實例:Sample InputSample Output110 6AACATGAAGGTTTTGG

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论