1你對貪心演算法的理解
貪心演算法, 感覺比分治,動態規劃什麼的更加"陽間", 理解或是應用都更加快, 後兩個都是不知道什麼情況下能做出最好答案而使用的地毯式轟炸答題, 貪心則是一開始就知道怎麼樣解決而使用的方法,比如收銀台找零問題, 簡直不要太直白的解題過程
2請選擇一道作業題目說明你的演算法滿足貪心選擇性質
4-3 最優合併問題 (100分)
給定k 個排好序的序列, 用 2 路合併演算法將這k 個序列合併成乙個序列。 假設所採用的 2 路合併演算法合併 2 個長度分別為m和n的序列需要m+n-1 次比較。試設 計乙個演算法確定合併這個序列的最優合併順序,使所需的總比較次數最少。 為了進行比較,還需要確定合併這個序列的最差合併順序,使所需的總比較次數最多。
第一行有 1 個正整數k,表示有 k個待合併序列。 第二行有 k個正整數,表示 k個待合併序列的長度。
輸出最多比較次數和最少比較次數。
在這裡給出一組輸入。例如:
4
5 12 11 2
在這裡給出相應的輸出。例如:
78 52
#include
usingnamespacestd;
//注意:最小的加第二小的結果,可能比第三小的大,最大的加上第二大的數的結果,絕對比第三大的數還要大
intmain()
sort(a,a+k);//a:從小到大排序
sort(b,b+k);
reverse(b,b+k);//b:從大到小排序
for(inti=0;i
cout<
}
這裡借鑑了其他同學的答題技巧,我自己的原來的**太羅嗦了,雖然也能完成, 但是總感覺不夠舒坦, 注意一點即可:
最小的加第二小的結果,可能比第三小的大,最大的加上第二大的數的結果,絕對比第三大的數還要大, 貪心實質:從大加到小,3請說明在本章學習過程中遇到的問題及結對程式設計的情況輸出, 從小加到大, 輸出,好了,就是這麼快樂.
問題只有乙個,容易漏掉反例, 然後造成一些測試點不能通過,
結對程式設計情況非常好,有了同伴一起打題, 才能感受到一起"直面死亡"的快樂, 對, 別誤會, 說的就是動態規劃還有那些上學期好像學了,
但是我一點都沒記住的資料結構 .兩個人學習還是有動力的.
第四章作業
二,簡答題 1.說明什麼情況下可以使用switch 選擇結構代替多重 if 選擇結構。答 需要判斷的條件可以列舉,並且變數是字元型或者整型。2.使用switch結構實現 為小明制定學習計畫,星期一,期三,星期五學習程式設計,星期二,星期四,星期六學習英語 星期日休息。程式執行結果如圖4.8和圖4.9...
作業 第四章
1.說明什麼情況下可以使用switch選擇結構代替多重if選擇結構 判斷條件必須是字元型 整形這種能判斷是不是相等的,因為switch判斷時候只有case 1 沒有case 1之類的。2.使用switch結構實現 為小明制訂學習計畫,星期一,星期三,星期五學習程式設計,星期二,星期四,星期六學習英語...
第四章作業
1.使用css製作網頁有哪些優勢?答案 可以美化網頁 2.使用style標籤和style屬性引入css樣式有哪些相同點和不同點?答案 css剛好管理 3.說明e f nth child n 和 e f nth of type n 兩種選擇器的區別與各自的使用場景。答案 第乙個是選擇第幾個子元素,並且...