<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          學(xué)好算法?不花錢好好看這個(gè) GitHub 項(xiàng)目就夠了!

          共 3220字,需瀏覽 7分鐘

           ·

          2021-01-22 10:10

          點(diǎn)擊上方小白學(xué)視覺(jué)”,選擇加"星標(biāo)"或“置頂

          重磅干貨,第一時(shí)間送達(dá)


          轉(zhuǎn)自機(jī)器之心

          不想做低級(jí)碼農(nóng),不想成為前端摳圖達(dá)人或是后臺(tái)「增刪改查」小王子?那你可能需要好好復(fù)習(xí)下算法與數(shù)據(jù)結(jié)構(gòu)。

          想成為算法工程師,基礎(chǔ)知識(shí)是繞不開的大山。這次要推薦的項(xiàng)目是數(shù)據(jù)結(jié)構(gòu)與算法的開源項(xiàng)目集,覆蓋多種主流語(yǔ)言,實(shí)現(xiàn)各類經(jīng)典數(shù)據(jù)結(jié)構(gòu)及算法


          項(xiàng)目地址:https://github.com/trending


          The Algorithms 項(xiàng)目介紹

          正如 The Algorithms 項(xiàng)目主頁(yè)上介紹的那樣,這是一個(gè)使用多種編程語(yǔ)言,實(shí)現(xiàn)經(jīng)典數(shù)據(jù)結(jié)構(gòu)與算法的開源項(xiàng)目集。

          這里的「any Programming Language」真是沒(méi)有虛假宣傳,我們可以看到 The Algorithms 里從較為流行的 Python、Java、C、C++ 到 C#、Go、Rust、Kotlin 語(yǔ)言應(yīng)有盡有,當(dāng)然有的編程語(yǔ)言實(shí)現(xiàn)的算法還不是那么的豐富,其中維護(hù)較好的還是 Python 和 Java。


          本文以 The Algorithms 的 Python 項(xiàng)目為例進(jìn)行介紹。

          截至目前,該項(xiàng)目已經(jīng)有 7 萬(wàn)多星,內(nèi)容涵蓋加密算法、圖像處理、動(dòng)態(tài)規(guī)劃、線性代數(shù)、經(jīng)典機(jī)器學(xué)習(xí)算法、搜索算法、排序算法以及各種數(shù)據(jù)結(jié)構(gòu)等,單是所實(shí)現(xiàn)算法的目錄就有 600 多行……?

          當(dāng)然,項(xiàng)目作者也指出,該項(xiàng)目的主要目的是用作各種算法的學(xué)習(xí)資料,項(xiàng)目中的一些實(shí)現(xiàn)可能沒(méi)有 Python 標(biāo)準(zhǔn)庫(kù)中的那么高效。


          項(xiàng)目地址:https://github.com/TheAlgorithms/Python


          部分算法展示

          該項(xiàng)目吸引人的地方不單是里面有豐富的算法實(shí)現(xiàn),部分算法還配有相關(guān)解釋、維基百科鏈接和交互網(wǎng)頁(yè)鏈接。我們選取了其中的部分算法實(shí)現(xiàn)進(jìn)行展示。

          排序算法

          1. 冒泡排序


          冒泡排序是一種簡(jiǎn)單的排序算法。它重復(fù)地走訪要排序的數(shù)列,一次比較兩個(gè)元素,如果它們的順序錯(cuò)誤就將其交換過(guò)來(lái)。重復(fù)以上過(guò)程直到?jīng)]有需要交換的元素,即表示完成排序。該算法名字的由來(lái)是越小的元素會(huì)經(jīng)由交換慢慢「浮」到數(shù)列的頂端。

          算法復(fù)雜度:

          • 最壞 O (n^2)

          • 最好 O (n)

          • 平均 O (n^2)


          交互網(wǎng)頁(yè)地址:https://www.toptal.com/developers/sorting-algorithms/bubble-sort

          2. 插入排序


          插入排序的工作原理是通過(guò)構(gòu)建有序序列,對(duì)于未排序數(shù)據(jù),在已排序序列中從后向前掃描,找到相應(yīng)位置并插入。插入排序在實(shí)現(xiàn)上通常采用 in-place 排序,因而在從后向前掃描過(guò)程中,需要反復(fù)把已排序元素逐步向后挪位,為最新元素提供插入空間。

          算法復(fù)雜度:

          • 最壞 O (n^2)

          • 最好 O (n)

          • 平均 O (n^2)


          交互網(wǎng)頁(yè)地址:https://www.toptal.com/developers/sorting-algorithms/insertion-sort

          3. 歸并排序


          歸并排序是建立在歸并操作上的一種有效的排序算法,由約翰?馮?諾伊曼首次提出。該算法是采用分治法的一個(gè)非常典型的應(yīng)用,且各層分治遞歸可以同時(shí)進(jìn)行。

          算法復(fù)雜度:

          • 最壞 O (n log n)

          • 最好 O (n)

          • 平均 O (n)


          交互網(wǎng)頁(yè)地址:https://www.toptal.com/developers/sorting-algorithms/merge-sort

          4. 快速排序


          快速排序算法最早由東尼?霍爾提出。使用分治法策略把一個(gè)序列分為較小和較大 2 個(gè)子序列,然后遞歸地排序兩個(gè)子序列。

          算法復(fù)雜度:

          • 最壞 O (n^2)

          • 最好 O (n log n) 或 O (n)?

          • 平均 O (n^2)


          交互網(wǎng)頁(yè)地址:https://www.toptal.com/developers/sorting-algorithms/quick-sort

          5. 希爾排序


          希爾排序也稱遞減增量排序算法,是插入排序的一種更高效的改進(jìn)版本,按其設(shè)計(jì)者希爾(Donald Shell)的名字命名,該算法由 1959 年公布。希爾排序是非穩(wěn)定排序算法。

          算法復(fù)雜度:

          • 最壞 O (nlog2 2n)

          • 最好 O (n log n)

          • 平均復(fù)雜度取決于步長(zhǎng)序列


          交互網(wǎng)頁(yè)地址:https://www.toptal.com/developers/sorting-algorithms/shell-sort

          搜索算法

          1. 線性搜索算法


          線性搜索也稱為順序搜索,其使用一個(gè)循環(huán)按順序遍歷整個(gè)數(shù)組,將每個(gè)元素與正在搜索的值進(jìn)行比較,并在找到該值或遇到數(shù)組末尾時(shí)停止。

          算法特性:

          • 最壞算法復(fù)雜度 O (n)

          • 最好算法復(fù)雜度 O (1)

          • 平均算法復(fù)雜度 O (n)

          • 最壞空間復(fù)雜度 O (1)?


          2. 二分查找算法


          二分查找算法也稱折半搜索算法、對(duì)數(shù)搜索算法,是一種在有序數(shù)組中查找某一特定元素的搜索算法。搜索過(guò)程從數(shù)組的中間元素開始,如果中間元素正好是要查找的元素,則搜索過(guò)程結(jié)束;如果某一特定元素大于或者小于中間元素,則在數(shù)組大于或小于中間元素的那一半中查找,而且跟開始一樣從中間元素開始比較。如果在某一步驟數(shù)組為空,則代表找不到。這種搜索算法每一次比較都使搜索范圍縮小一半。

          算法特性:

          • 最壞算法復(fù)雜度 O (log n)

          • 最好算法復(fù)雜度 O (1)

          • 平均算法復(fù)雜度 O (log n)

          • 最壞空間復(fù)雜度 O (1)


          作者簡(jiǎn)介

          該項(xiàng)目作者是位印度籍工程師,對(duì)技術(shù)開發(fā)非常癡迷,并坦言自己是一個(gè)非常有「雄心壯志」的小伙,之后想成為一名企業(yè)家。從技術(shù)角度看,作者對(duì)全棧開發(fā)、android 開發(fā)、深度學(xué)習(xí)以及區(qū)塊鏈等技術(shù)都很感興趣。目前,他已經(jīng)在 3 家創(chuàng)業(yè)公司工作過(guò),并在開發(fā)領(lǐng)域積累了 2 年的經(jīng)驗(yàn)。


          從過(guò)往經(jīng)歷來(lái)看,印度小哥的工作經(jīng)歷還是很「豐富多彩」的,從開始將自己定位為軟件工程師,到目前在 Gojek 任職產(chǎn)品工程師。

          Gojek 是印度尼西亞第一家獨(dú)角獸公司,于 2010 年在印度尼西亞成立。我們可以將這家公司理解為呼叫中心,將消費(fèi)者與快遞和兩輪叫車服務(wù)連接起來(lái)。該公司同時(shí)在印度尼西亞、越南、新加坡、泰國(guó)和菲律賓都有不少的業(yè)務(wù)發(fā)展。


          下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程
          在「小白學(xué)視覺(jué)」公眾號(hào)后臺(tái)回復(fù):擴(kuò)展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺(jué)、目標(biāo)跟蹤、生物視覺(jué)、超分辨率處理等二十多章內(nèi)容。

          下載2:Python視覺(jué)實(shí)戰(zhàn)項(xiàng)目31講
          小白學(xué)視覺(jué)公眾號(hào)后臺(tái)回復(fù):Python視覺(jué)實(shí)戰(zhàn)項(xiàng)目31講,即可下載包括圖像分割、口罩檢測(cè)、車道線檢測(cè)、車輛計(jì)數(shù)、添加眼線、車牌識(shí)別、字符識(shí)別、情緒檢測(cè)、文本內(nèi)容提取、面部識(shí)別等31個(gè)視覺(jué)實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計(jì)算機(jī)視覺(jué)。

          下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講
          小白學(xué)視覺(jué)公眾號(hào)后臺(tái)回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講即可下載含有20個(gè)基于OpenCV實(shí)現(xiàn)20個(gè)實(shí)戰(zhàn)項(xiàng)目,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。

          下載4:leetcode算法開源書
          小白學(xué)視覺(jué)公眾號(hào)后臺(tái)回復(fù):leetcode,即可下載。每題都 runtime beats 100% 的開源好書,你值得擁有!





          交流群


          歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺(jué)、傳感器自動(dòng)駕駛、計(jì)算攝影、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN、算法競(jìng)賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺(jué)SLAM“。請(qǐng)按照格式備注,否則不予通過(guò)。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~


          瀏覽 41
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美成人黄色电影网站 | www国产内射 | 可以免费看的黄色网址 | 久操AV在线播放 | 免费在线亚洲 |