分治演算法筆記

2021-09-26 04:51:15 字數 652 閱讀 5331

區間查詢

三個重要函式

find

lower_bound

upper_bound

區間二分重要模型

最大子段和

二分後,尋找左區間、右區間和橫跨mid三種情況的最大值

一維最近點對–>拓展:二維最近點對

分治找最大值

快速冪從來不用分治寫,但是老師在這裡講了

拓展:高精度,矩陣快速冪

歸併排序

拓展:求逆序對

快速排序

思想:挖坑填數 挖什麼坑呢?可以rand

拓展:求第k大的數(優先佇列也能做)

二分列舉

直接對答案進行列舉,將答案進行二分

典型問題:

最大值最小化問題(求最大值的最小值)

三分法

二分法適用於單調有序的數列,而三分法適用於凹凸函式

典型例題,求凸函式的最大值:
三分區間start left right end 比較f(left)和f(right)確定極值點在哪個區間 [start,right] 或[left,end]每次區間縮小為2/3

貼份大神寫的分治總結

演算法筆記之演算法思想 分治演算法

分治演算法 divide and conquer 的核心思想其實就是四個字,分而治之 也就是將原問題劃分成 n 個規模較小,並且結構與原問題相似的子問題,遞迴地解決這些子問題,然後再合併其結果,就得到原問題的解。分治演算法是一種處理問題的思想,遞迴是一種程式設計技巧。實際上,分治演算法一般都比較適合...

分治演算法的學習筆記

分治演算法應用一 漢諾塔問題 問題描述 漢諾塔問題 於乙個古老的傳說,世界剛被建立的時候,有一座鑽石寶塔,上面有64個金碟,所有碟子按照從大到小的順序從塔底堆到塔頂,從世界創世開始,牧師們一直在努力將塔a的碟子借助b移到c上,每次只能移動乙個,而且不能讓小的放在大的下面 原理 對漢諾塔問題的求解簡化...

演算法思想筆記 分治法

1 合併排序 2 快速排序 3 折半查詢 4 二叉樹遍歷 5 大整數乘法和strassen乘法 6 最近對問題和凸包問題的分治解法 簡介 大整數乘法 把a的前半部分記為a1,後半部分極為a0 b的前半部分記為b1,後半部分記為b0 即a a1 10 n 2 a0 b b0 10 n 2 b0 則有c...