Algorithm目錄

努力學(xué)習(xí)中

一、基礎(chǔ)算法

  1. 二叉查找——在O({\bf log}n)的時(shí)間內(nèi)尋找某一個(gè)具體值
  2. 計(jì)數(shù)排序——這是一種犧牲內(nèi)存空間來(lái)?yè)Q取低時(shí)間復(fù)雜度的排序算法,可以達(dá)到O(n)時(shí)間復(fù)雜度
  3. 快速排序——對(duì)冒泡排序的一種改進(jìn),可以在最好和平均時(shí)間復(fù)雜度為 O(n{\bf log}_2n),最壞時(shí)間復(fù)雜度O(n^2)
  4. 桶排序——當(dāng)要被排序的數(shù)組內(nèi)的數(shù)值平局分配的時(shí)候,桶排序使用線性時(shí)間(\Theta(n)
  5. 置換環(huán)——得到數(shù)組排序(可以指定排序方式)所需交換的最小次數(shù)

二、線性表

  1. 并查集——適用于解決一些元素的分組問(wèn)題

三、棧和隊(duì)列

  1. 單調(diào)隊(duì)列——解決滑動(dòng)窗口類問(wèn)題
  2. 單調(diào)棧——解決Next Greater Element(NGE)問(wèn)題

四、樹

  1. 二叉搜索樹——維護(hù)一個(gè)有序的數(shù)組,搜索前綴、后綴、最大值、最小值
  2. 平衡二叉搜索樹——使每個(gè)結(jié)點(diǎn)的左右兩顆子樹的高度差都不超過(guò)一
  3. 線段樹——用于維護(hù)區(qū)間信息,可以實(shí)現(xiàn)O({\bf log}\ n)的區(qū)間修改
  4. 二叉堆——適用于按大小取數(shù)的情況

五、圖

  1. 單源最短路徑-Dijkstra——解決正權(quán)圖的單源最短路徑問(wèn)題

六、字符串

  1. 字典樹——用來(lái)存儲(chǔ)和查詢字符串,利用字符串的公共前綴來(lái)減少查詢時(shí)間,同時(shí)可以利用字符串的'后綴'+'$'+'前綴'形式完成前綴后綴的搜索
  2. KMP字符串匹配算法——在O(n+m)的時(shí)間復(fù)雜度內(nèi)在文本串中快速查找模式串
  3. 最長(zhǎng)公共子序列——利用動(dòng)態(tài)規(guī)劃查找兩個(gè)字符串的最長(zhǎng)公共子序列
  4. 確定有限狀態(tài)自動(dòng)機(jī)——求解給定的輸入字符串S是否滿足條件P的問(wèn)題

七、動(dòng)態(tài)規(guī)劃

  1. 前綴和——數(shù)組的某下標(biāo)之前的所有數(shù)組元素的和,在單位時(shí)間內(nèi)求出單位和
  2. 線性動(dòng)態(tài)規(guī)劃——具有線性階段劃分的動(dòng)態(tài)規(guī)劃算法
  3. 區(qū)間動(dòng)態(tài)規(guī)劃——一個(gè)狀態(tài)通常由被它包含且比它更小的區(qū)間狀態(tài)轉(zhuǎn)移而來(lái)
  4. 樹形動(dòng)態(tài)規(guī)劃——根據(jù)樹形結(jié)構(gòu)進(jìn)行動(dòng)態(tài)規(guī)劃的算法

八、數(shù)學(xué)

  1. 最大公約數(shù)和最小公倍數(shù)——求解最大公約數(shù)和最小公倍數(shù)簡(jiǎn)潔版
  2. 同余及其性質(zhì)——數(shù)論中的一種等價(jià)關(guān)系
  3. 組合數(shù)的計(jì)算方法——從n個(gè)不同元素中取出個(gè)m(m\leq n)元素的所有組合的個(gè)數(shù)

九、高頻面試題

  1. 面試高頻題-最長(zhǎng)公共子序列

參考文獻(xiàn):

  1. 算法·進(jìn)階石(algorithm-stone)—— 進(jìn)擊的每一步!
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 讀者經(jīng)常讓我寫刷題路線,我覺得這些東西太枯燥了,今天就編一個(gè)故事講講。 這要從小東開始學(xué)習(xí)技術(shù)開始講起。 小東是一...
    labuladong閱讀 629評(píng)論 0 4
  • 1.數(shù)據(jù)結(jié)構(gòu) 1.1 基本的數(shù)據(jù)結(jié)構(gòu) 基本數(shù)據(jù)結(jié)構(gòu)ADT及其實(shí)現(xiàn)常用數(shù)據(jù)結(jié)構(gòu)對(duì)比及其應(yīng)用場(chǎng)景查找樹(搜索樹)優(yōu)先隊(duì)...
    王偵閱讀 851評(píng)論 0 1
  • 序言: 為了免去以后自己尋找可能會(huì)比較麻煩,然后把所有的書寫的簡(jiǎn)書分類分條目列出 Spring+SpringMVC...
    是小豬童鞋啦閱讀 14,354評(píng)論 0 4
  • 音視頻流媒體開發(fā)-目錄[http://www.itdecent.cn/p/5a868a667838]iOS知識(shí)點(diǎn)...
    AlanGe閱讀 1,507評(píng)論 0 9
  • 字符串 題目?jī)?nèi)容解法3 Longest Substring Without Repeating Characte...
    jluemmmm閱讀 255評(píng)論 0 0

友情鏈接更多精彩內(nèi)容