演算法第二章作業

2022-08-21 04:57:17 字數 715 閱讀 9978

請談一下你對分治法思想的體會

分治法的基本思想就是將乙個複雜的問題分解成幾個規模更小的子問題,並且這些子問題互相獨立,且與原問題相同。利用遞迴解決這種問題,就能將原問題規模分解的足夠小,直到子問題變得容易解決。合併子問題,從而得出最後的結果。

分解(divide) ——> 遞迴求解(conquer) ——> 合併(merge)

(分解子問題   圖源

分治法的例子

有序陣列 查詢陣列中的某個值

將待排序元素分成大小大致相同的2個子集合,分別對2個子集合進行排序,最終將排好序的子集合合併為所要求的排好序的集合。

先從數列中取出乙個數作為基準數。將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊。再對左右區間重複第二步,直到各區間只有乙個數。 

2.結對程式設計情況匯報

結對程式設計我是和饒同學一起的,我們是乙個宿舍的,所以比較容易討論。我覺得結對程式設計可以讓我想問題想的更深一點,因為要把自己的思路說出來,解釋給我的partner聽。特別要注意的是,因為寫出來的**要兩個人一起看,所以變數和函式等的命名,都要同意而且清晰,特別要注意一些**規範。

在第三週上機的那道實踐題裡,我們一開始對遞迴在這道問題裡的應用不太了解,經過兩個人的討論,最後才把我們的解題思路確定下來。

希望以後我們能互相督促,共同進步。

演算法第二章作業

分治法 就是把乙個複雜的問題分成兩個或更多的相同或相似的子問題,再把子問題分成更小的子問題 直到最後子問題可以簡單的直接求解,原問題的解即子問題的解的合併。分治法乙個主要思想是遞迴,遞迴的時間複雜度低。演算法的複雜度低,提高了演算法的質量。分治法在每一層遞迴上都有三個步驟 分解 將原問題分解為若干個...

演算法 第二章作業

答 二分法主要是分治法下的乙個特殊的思想方法,主要是將搜尋區域裡的元素分成個數大致相同的兩個部分後,選取中間元素進行比對,若相等則比對結束,若大若小,則分情況進行遞迴,從而使問題的普查區域變成原來總元素個數的一半.從而使得整個演算法的時間複雜度降為o logn 但是前提是,能夠將所需的問題能不斷的二...

演算法第二章作業

分治法體會 分治法所能解決的問題一般具有以下幾個特徵 1 該問題的規模縮小到一定的程度就可以容易地解決 2 該問題可以分解為若干個規模較小的相同問題,即該問題具有最優子結構性質。3 利用該問題分解出的子問題的解可以合併為該問題的解 4 該問題所分解出的各個子問題是相互獨立的,即子問題之間不包含公共的...