在大數(shù)據(jù)盛行的時代黄娘,作為一位數(shù)據(jù)人或是IT人,難免遇上各種不同的算法克滴。你知道日常一些基礎實用的算法的優(yōu)勢和步驟嗎逼争?今天,大圣眾包威客平臺(www.dashengzb.cn)將深入淺出地為大家介紹5種常見的算法劝赔。
1.二分查找算法
【概念解析】:
二分查找算法誓焦,是一種在有序數(shù)組中查找某一特定元素的搜索算法。
【算法優(yōu)勢】:
二分查找算法,使得每一次比較都令搜索范圍縮小一半杂伟,它的時間復雜度為Ο(logn)移层。
【算法步驟】:
1.搜索過程從數(shù)組的中間元素開始,如果中間元素正好是要查找的元素赫粥,則搜索過程結(jié)束观话;
2.如果某一特定元素大于或者小于中間元素,則在數(shù)組大于或小于中間元素的那一半中查找越平,而且和開始一樣频蛔,從中間元素開始比較;
3.如果在某一步驟數(shù)組為空秦叛,則代表找不到晦溪。
2.堆排序算法
【概念解析】:
堆排序(Heapsort)是指利用“堆”這種數(shù)據(jù)結(jié)構(gòu)所設計的一種排序算法。堆積是一個近似完全二叉樹的結(jié)構(gòu)挣跋,并同時滿足了堆積的性質(zhì)——子結(jié)點的鍵值或索引總是小于(或者大于)它的父節(jié)點三圆。
【算法優(yōu)勢】:
堆排序的平均時間復雜度為Ο(nlogn)。
【算法步驟】:
1.創(chuàng)建一個堆H[0..n-1]避咆;
2.把堆首(最大值)和堆尾互換嫌术;
3.把堆的尺寸縮小1,并調(diào)用shift_down(0)牌借,目的是把新的數(shù)組頂端數(shù)據(jù)調(diào)整到相應位置度气;
4.重復步驟2,直到堆的尺寸為1膨报。
3.DFS(深度優(yōu)先搜索)算法
【概念解析】:
深度優(yōu)先搜索算法(Depth-First-Search)磷籍,是搜索算法的一種。
【算法優(yōu)勢】:
DFS算法是圖論中的經(jīng)典算法现柠,利用這種算法可以產(chǎn)生目標圖的相應拓撲排序表院领。而利用拓撲排序表可以方便地解決很多相關(guān)的圖論問題。DFS屬于盲目搜索够吩,一般用堆數(shù)據(jù)結(jié)構(gòu)來輔助實現(xiàn)比然。
【算法步驟】:
1.訪問頂點v;
2.依次從v的未被訪問的鄰接點出發(fā)周循,對圖進行深度優(yōu)先遍歷强法,直至圖中和v有路徑相通的頂點都被訪問過;
3.若此時圖中尚有頂點未被訪問湾笛,則從一個未被訪問的頂點出發(fā)饮怯,重新進行深度優(yōu)先遍歷,直到圖中所有頂點均被訪問過為止嚎研。
4.Dijkstra算法
【概念解析】:
戴克斯特拉算法(Dijkstra'salgorithm)是由荷蘭計算機科學家艾茲赫爾·戴克斯特拉提出的蓖墅,該算法常用于路由算法或者作為其他圖算法的一個子模塊。
【算法優(yōu)勢】:
Dijkstra算法使用了廣度優(yōu)先搜索,以解決非負權(quán)有向圖的單源最短路徑問題论矾,算法最終得到一個最短路徑樹教翩。對于不含負權(quán)的有向圖,Dijkstra算法是目前已知的最快的單源最短路徑算法贪壳。
【算法步驟】:
1.初始時饱亿,令S={V0},T={其余頂點}寥袭,T中頂點對應的距離值:
若存在,d(V0,Vi)為弧上的權(quán)值关霸;
若不存在传黄,d(V0,Vi)為∞;
2.從T中選取一個距離值為最小的頂點W且不在S中队寇,加入S膘掰;
3.對其余T中頂點的距離值進行修改:若加進W作中間頂點,從V0到Vi的距離值縮短佳遣,則修改此距離值识埋;
4.重復上述步驟2、3零渐,直到S中包含所有頂點窒舟,即W=Vi為止。
5.樸素貝葉斯分類算法
【概念解析】:
樸素貝葉斯分類算法诵盼,是一種基于貝葉斯定理的簡單概率分類算法惠豺。
【算法優(yōu)勢】:
樸素貝葉斯分類器依靠精確的自然概率模型,在有監(jiān)督學習的樣本集中能獲取非常好的分類效果风宁。在許多實際應用中洁墙,樸素貝葉斯模型參數(shù)估計使用最大似然估計方法,換言之樸素貝葉斯模型能工作并沒有用到貝葉斯概率或者任何貝葉斯模型戒财。盡管是帶著這些樸素思想和過于簡單化的假設热监,但樸素貝葉斯分類器在很多復雜的現(xiàn)實情形中仍能夠取得相當好的效果。
【算法步驟】:
貝葉斯分類的基礎是概率推理——在各種條件存在不確定饮寞、僅知其出現(xiàn)概率的情況下孝扛,如何完成推理和決策任務。概率推理是與確定性推理相對應的幽崩。而樸素貝葉斯分類器是基于獨立假設的疗琉,即假設樣本每個特征與其他特征都不相關(guān)。
藝多不壓身歉铝,希望以上算法干貨能讓你在大數(shù)據(jù)海洋里馳騁縱橫盈简。
(更多大數(shù)據(jù)與商業(yè)智能領(lǐng)域干貨、電子書,添加大圣花花個人微信號(dashenghuaer))