Acwing演算法基礎課筆記(1 1)排序和二分

2021-10-11 10:59:59 字數 741 閱讀 4202

主要思想:上課學習內容

背過模板:課下(寫出模板題)

做題目:課下(寫同一道題3-5次)

快排:分治

確定分解點:q(l),q(l+r)/2,q® 隨機

調整區間: 左邊所有數小於等於x,所以右邊數都大於等於x

遞迴處理左右兩段

樸素方法

1 .a b

2 . q[l-r] q[i]<=x 放a q[i]>=x 放b

3 .把a b 放到q裡去

優美的做法

1.使用兩個指標 i,j;

2.i,j分別從左右向中間走,如果i掃瞄到的數<=x,i++,直到a[i]>x停止;同理,a[j]>=x.j–,直到a[j]歸併排序

確定分界點 mid=(l+r)/2

遞迴排序 left right

歸併 合二為一

有單調性可以二分,可以二分不一定都有單調性

二分!=單調性

兩個模板

1.mid =l+r+1>>1

判斷mid時 true;l=mid

2. mid=l+r>>1

判斷mid時 true;r=mid

AcWing 演算法基礎課 動態規劃

1 揹包問題 1 01揹包 每件物品僅用一次 可以做空間優化 dp j max dp j dp j v i w i 0,1揹包狀態均是從前一迴圈的狀態轉移 2 完全揹包 每件物品可以用無限次 完全揹包的狀態可以從當前迴圈的狀態轉移,進行優化 3 多重揹包 每件物品有不同的數量限制 可以對物品的數量限...

演算法基礎課筆記

方法步驟 1 確定分界點。一般取q l q r q l r 2 作為樞紐。2 調整區間,左邊的都是小於等於樞紐值,右邊的都是大於等於樞紐值。最重要 3 遞迴處理左右兩段。快速排序模板 void quick sort int q int l int r quick sort q,l,j quick s...

Acwing演算法基礎課知識點

知識點 基礎演算法 模板鏈結常用 模板1 基礎演算法 排序 二分高精度 字首和與差分 雙指標演算法 位運算離散化 區間合併 資料結構 模板鏈結常用 模板2 資料結構 鍊錶與鄰接表 樹與圖的儲存 棧與佇列 單調佇列 單調棧 kmptrie 並查集堆 hash表 c stl使用技巧 搜尋與圖論 模板鏈結...