1. 程式人生 > >算法設計第二章總結

算法設計第二章總結

行程 問題 不知道 序列 函數 排列問題 治法 通過 百度

第二章是遞歸和分治策略,通過Hanoi塔問題、排列問題等學習遞歸的思想,通過二分搜索算法、大整數乘法等學習了分治法的思想,並學習了歸並排序和快速排序兩種排序方法。PTA上的問題一是找第k小的數,用到了快速排序的方法對數組進行排序,同時在尋找第k小的數時遞歸調用int find(int a[],int left,int right,int k)函數,從而找出k。寫代碼過程中遇到的問題是在main函數中left與right賦值出錯,導致程序運行程序超時錯誤及段錯誤,改正後程序可正常運行。問題二是求逆序對數目。題目問題是:對給定序列進行排序的相鄰數字的最小交換次數是多少?一開始看到這個問題是感覺無法下手,不知道最小交換次數應如何求解。後來通過網上百度,了解了求最小交換次數實際上就是求給定序列的逆序對數目。弄清楚問題後,使用歸並排序的方法對數組進行排序,同時求出逆序對的數目並輸出。

算法設計第二章總結