演算法分析與設計第四次作業 二分歸併排序演算法

2021-10-04 06:19:07 字數 748 閱讀 4078

1、首先我們有乙個將兩段有序序列合併起來的函式merge;類似鍊錶的有序鍊錶的合併,我們用l(初始化傳入為左邊起點索引)代表目前所指向左邊序列的位置,r同理。我們用while迴圈控制,while(l<=r-1&&r<=rightend);rightend代表右邊終點;再用if語句控制,如果a[l]<=a[r],那麼tmpa(新建臨時陣列)下乙個儲存的序列為a[l],反之則為a[r];退出迴圈後如果左邊序列還有剩下,則將剩下放入臨時陣列,反之亦然。最後將tmpa陣列的元素複製回a陣列。

2、我們將有乙個函式,控制傳入的兩段序列,那麼我們利用遞迴思想,把序列左邊與右邊分別遞迴,我們首先有個center=(l+rightend)/2;代表中間位置,將左右序列分開,然後用if語句控制,如果l/l=左邊起始點位置,r=右邊起始點位置,rightend=右邊終點位置/

void merge(int a,int tmpa,int l,int r,int rightend)

else tmpa[tmp++] = a[r++];

} while (l <= leftend)

while (r <= rightend)

for (i = 0; i < numelements; i++,rightend–)}

void msort(int a, int tmpa, int l, int rightend) }

void mergesort(int a,int n)

else printf(「空間不足」);

}時間複雜度o(nlogn)

演算法設計與分析第四次作業

實驗報告 課程名稱 演算法分析與設計 實驗日期 2021年3 月29日至 2021年3 月29 日學生姓名 宣鑑超所在班級 計算機194 學號 2019212212152 實驗名稱 二分歸併排序 實驗地點 勤園13 208 同組人員 宣鑑超二分歸併排序 對n個不同的數構成的陣列a 1 n 進行排序,...

系統分析與設計 第四次作業

1 用例建模 c.對比兩個時代 不同地區產品的用例圖,總結在專案早期,發現創新的思路與方法 d.請使用 scrum 方法,在 任務b 用例圖基礎上,編制某定旅館開發的需求 backlog 2 業務建模 3 用例文字編寫 1 用例建模 編號 名稱重要性 預計工作量 故事描述 負責人0 瀏覽酒店65 使...

系統分析與設計 第四次作業

黃色部分為去哪兒 有的,其餘部分與asg sh中一致。c.對比兩個時代 不同地區產品的用例圖,總結在專案早期,發現創新的思路和方法。d.請使用 scrum 方法,在 任務b 用例圖基礎上,編制某定旅館開發的需求 backlog id name impest how to demo notes1搜尋 ...