程序開發(fā)的一些基本算法

先說下本人目前的情況乱顾,盲目學習了半年的android知識,熟悉了四大組件和android項目中主流的一些框架和三方sdk,但是在實際求職中經常會被些基礎知識和基礎算法懟到一臉懵逼念链,所以說基本功可以看出一個人的實力当犯,或許這些知識在工作中用不到,但給面試官的感覺就是你啥也不懂菇存,今天就來總結一些算法知識却盘。

1 快速排序

快速排序由C. A. R. Hoare在1962年提出狰域,它的基本思想是:通過一趟排序要將排序的數(shù)據(jù)分割成獨立的兩部分,其中一部分的所有數(shù)據(jù)都比另外一部分的所有數(shù)據(jù)都要小黄橘,然后再用此方法對這兩部分數(shù)據(jù)分別進行快速排序兆览,整個排序過程可以遞歸進行,以此達到整個數(shù)據(jù)變成有序數(shù)列塞关。

算法步驟:1 從數(shù)列中挑出一個元素抬探,成為基準;

? ? ? ? ? ? ? ? ? ? 2 重新排序數(shù)列帆赢,所有比基準值小的元素都放在基準值的前面小压,所有比基準值大的元素都放在基準值后面线梗,相同的數(shù)放至任一邊,這個成為分區(qū)操作怠益;

? ? ? ? ? ? ? ? ? ? 3 遞歸地把小于基準值的子數(shù)列和大于基準值的子數(shù)列排序仪搔;

? ? ? ? ? ? ? ? ? ? 遞歸的最底部的情形,是數(shù)列的大小是零或者一溉痢,也就是已經排序好了僻造。

2 堆排序算法

堆實際上是一棵完全二叉樹,其任何一分頁節(jié)點的關鍵字不大于或者不小于其左右孩子節(jié)點的關鍵字孩饼。堆分為大頂堆和小頂堆髓削,大頂堆堆頂?shù)年P鍵字是所有關鍵字中最大的,小頂堆堆頂?shù)年P鍵字是所有關鍵字中最小的镀娶。

對于堆排序立膛,最重要的兩個操作就是構造初始堆和調整堆,其實構造初始堆事實上也是調整堆的過程梯码,只不過構造初始堆是對所有的非葉節(jié)點都進行調整宝泵。

每次調整都是從父節(jié)點、左孩子節(jié)點轩娶、右孩子節(jié)點三者中選擇最大者跟父節(jié)點進行交換(交換之后可能造成被交換的孩子節(jié)點不滿足堆的性質儿奶,因此每次交換之后要重新對被交換的孩子節(jié)點進行調整)。有了初始堆之后就可以進行排序了鳄抒。

3 二分查找算法

二分查找算法是一種在有序數(shù)組中查找某一特定元素的搜索算法闯捎。搜素過程從數(shù)組的中間元素開始,如果中間元素正好是要查找的元素许溅,則搜素過程結束瓤鼻;如果某一特定元素大于或者小于中間元素,則在數(shù)組大于或小于中間元素的那一半中查找贤重,而且跟開始一樣從中間元素開始比較茬祷。如果在某一步驟數(shù)組為空,則代表找不到并蝗。這種搜索算法每一次比較都使搜索范圍縮小一半祭犯。折半搜索每次把搜索區(qū)域減少一半,時間復雜度為Ο(logn) 滚停。

4 深度優(yōu)先搜索 DFS

深度優(yōu)先搜索算法(Depth-First-Search)是搜索算法的一種沃粗。它沿著樹的深度遍歷樹的節(jié)點,盡可能深的搜索樹的分支铐刘,當節(jié)點V的所有邊都已被探尋過,探索將回溯到發(fā)現(xiàn)節(jié)點V的那條邊的起始節(jié)點影晓。這一過程一直進行到已發(fā)現(xiàn)從源節(jié)點可達的所有節(jié)點為止镰吵。如果還存在未被發(fā)現(xiàn)的節(jié)點檩禾,則選擇其中一個作為源節(jié)點并重復以上過程,整個進程反復進行到所有節(jié)點被訪問為止疤祭。DFS屬于盲目搜索盼产。

深度優(yōu)先搜索是圖論中的經典算法,利用深度優(yōu)先搜索算法可以產生目標圖的相應拓撲排序表勺馆,利用拓撲排序表可以方便的解決很多相關的圖論問題戏售,如最大路徑問題等等。一般用堆數(shù)據(jù)結構來輔助實現(xiàn)DFS算法草穆。

深度優(yōu)先遍歷圖算法步驟:

1.?訪問頂點v灌灾;

2.?依次從v的未被訪問的鄰接點出發(fā),對圖進行深度優(yōu)先遍歷悲柱;直至圖中和v有路徑相通的頂點都被訪問锋喜;

3.?若此時圖中尚有頂點未被訪問,則從一個未被訪問的頂點出發(fā)豌鸡,重新進行深度優(yōu)先遍歷嘿般,直到圖中所有頂點均被訪問過為止。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末涯冠,一起剝皮案震驚了整個濱河市炉奴,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蛇更,老刑警劉巖瞻赶,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異械荷,居然都是意外死亡共耍,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門吨瞎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來痹兜,“玉大人,你說我怎么就攤上這事颤诀∽中瘢” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵崖叫,是天一觀的道長遗淳。 經常有香客問我,道長心傀,這世上最難降的妖魔是什么屈暗? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上养叛,老公的妹妹穿的比我還像新娘种呐。我一直安慰自己,他們只是感情好弃甥,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布爽室。 她就那樣靜靜地躺著,像睡著了一般淆攻。 火紅的嫁衣襯著肌膚如雪阔墩。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天瓶珊,我揣著相機與錄音啸箫,去河邊找鬼。 笑死艰毒,一個胖子當著我的面吹牛筐高,可吹牛的內容都是我干的。 我是一名探鬼主播丑瞧,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼柑土,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了绊汹?” 一聲冷哼從身側響起稽屏,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎西乖,沒想到半個月后狐榔,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡获雕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年薄腻,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片届案。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡庵楷,死狀恐怖,靈堂內的尸體忽然破棺而出楣颠,到底是詐尸還是另有隱情尽纽,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布童漩,位于F島的核電站弄贿,受9級特大地震影響,放射性物質發(fā)生泄漏矫膨。R本人自食惡果不足惜差凹,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一期奔、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧危尿,春花似錦能庆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽弥搞。三九已至邮绿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間攀例,已是汗流浹背船逮。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留粤铭,地道東北人挖胃。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像梆惯,于是被迫代替她去往敵國和親酱鸭。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內容