軟件設計師——數據結構與算法應用 [ 筆記 ]

┏┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅☆
┇ 根據B站視頻以及教材做的筆記 ╹◡╹
┇ 視頻:https://www.bilibili.com/video/av19665344
┇ 教材:軟件設計師考試衝刺(習題與解答)
┗┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅☆

課程內容提要

在這裏插入圖片描述

分治法

  • 分治法:把一個比較大而複雜的問題拆分成多個規模較小的子問題,解決問題的難度降低很多。
  • 往往需要 遞歸 技術解決問題。
    分治法

遞歸技術

遞歸技術

二分查找法

二分查找法

回溯法

回溯法:深度優先的搜索法。
回溯法

貪心法

  • 貪心法:花有限的時間找出一個令人滿意的解,這個解不一定是最優解。性價比方案。
  • 在揹包問題中,單位物品價值越高,越優先選。
    貪心法

動態規劃法

動態規劃法:與分治法相似,將原問題拆分成多個子問題。不同點在於動態規劃法基本需要查表。
動態規劃法

試題

例15-1-1
例15-1-2
例15-1-3
例15-1-4
【問題1】
(1) j = 0;
(2) b [ j ] = b [ j ] + s [ i ];
(3) min = temp;
(4) b [ m ] = b [ m ] + s [ i ]。
例15-1答案3
【問題2】
整個時間複雜度以最高的爲準。
(5) 貪心法 ;(6) 貪心法 ;(7) O(n2);(8)O(n2)。
例15-1答案2
【問題3】
最優適宜策略僅局部達到最優,整體不一定達到最優。
(9) 5 ;(10) 4 ;(11) 否 。
例15-1答案1

例15-2-1
例15-2-2
例15-2-3
例15-2-4
【問題1】
(1) k<=r;
(2) arr [ k ] = right [ j ];
(3) begin<end;
(4) mergeSort(arr,mid+1,end)。
【問題2】
由於該題使用了歸併排序,且拆分成兩個子數組,分別排序後再合併起來。所以採用了分治法的算法設計策略。
時間複雜度爲O(nlogn)。
空間複雜度爲O(n)。
(5) 分治法;(6) T(n)=2T(n/2)+O(n);(7) O(n)。
【問題3】
(9) n1+n2

發佈了48 篇原創文章 · 獲贊 18 · 訪問量 5356
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章