第四章作業

2022-07-11 22:30:20 字數 961 閱讀 4804

貪心演算法是一種對某些求最優解問題的更簡單、更迅速的設計技術。貪心演算法是指在對問題求解時,總是做出在當前看來是最好的選擇,而不是全域性最優解。乙個問題的整體最優解可通過一系列區域性的最優解的選擇達到,並且每次的選擇可以依賴以前作出的選擇,但不依賴於後面要作出的選擇。這就是貪心選擇性質。對於乙個具體問題,要確定它是否具有貪心選擇性質,必須證明每一步所作的貪心選擇最終導致問題的整體最優解。貪心演算法設計最關鍵的一點是貪心策略的選擇。

給定k 個排好序的序列, 用 2 路合併演算法將這k 個序列合併成乙個序列。 假設所採用的 2 路合併演算法合併 2 個長度分別為m和n的序列需要m+n-1 次比較。試設 計乙個演算法確定合併這個序列的最優合併順序,使所需的總比較次數最少。 為了進行比較,還需要確定合併這個序列的最差合併順序,使所需的總比較次數最多。

將輸入的數按從小到大和從大到小分別排序,然後用a[i+1]和a[i]進行合併,獲得合併後序列長度並存放在a[i+1]上,即a[i+1] = a[i]+a[i+1],然後把合併比較次數存放在sum,然後指標後跳一位,從a[i+1]處繼續重新排序再合併存放,比較次數累加到sum,直到結束,從而求出最少比較次數。

最大比較次數同裡。

貪心策略:從相鄰且最小的陣列依次合併,比較次數最少。相反則次數最大。

#include #include 

using

namespace

std;

bool compare(int a,int

b)int

main()

sort(a,a+k);

sort(b,b+k,compare);

for(int i = 0;i1;i++)

for(int i = 0;i1;i++)

cout

<"

"return0;

}

本次結對程式設計情況良好,經過磨合,現在暫無什麼差錯。

第四章作業

二,簡答題 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 兩種選擇器的區別與各自的使用場景。答案 第乙個是選擇第幾個子元素,並且...