加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • 排序
    • 數(shù)組的查找
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

算法與數(shù)據(jù)結(jié)構(gòu)無(wú)廢話筆記(二)

05/11 10:09
1057
閱讀需 4 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

??算法與數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)專業(yè)學(xué)生的必修課,基礎(chǔ)中的基礎(chǔ),所以快速上手,找到學(xué)習(xí)方向和感覺(jué)十分重要。我在學(xué)習(xí)過(guò)程中遇到一本好書,《我的第一本算法書》,把算法講得很淺顯易懂,所以基于這本書的內(nèi)容,提煉出其中的精華,再加上個(gè)人的理解,旨在把最干的干貨分享給大家。推薦大家去閱讀原書

排序

由于排序是一個(gè)比較基礎(chǔ)的問(wèn)題,所以排序算法的種類也比較多。

冒泡排序

從序列右邊開(kāi)始比較相鄰兩個(gè)數(shù)字的大小,再根據(jù)結(jié)果交換兩個(gè)數(shù)字的位置。數(shù)字會(huì)像泡泡一樣,慢慢從右往左“浮”到序列的頂端。

在這里插入圖片描述

在這里插入圖片描述

選擇排序

從待排序的數(shù)據(jù)中尋找最小值,將其與序列最左邊的數(shù)字進(jìn)行交換。

在這里插入圖片描述

在這里插入圖片描述

插入排序

從序列左端開(kāi)始依次對(duì)數(shù)據(jù)進(jìn)行排序的算法。在排序過(guò)程中,左側(cè)的數(shù)據(jù)陸續(xù)歸位,而右側(cè)留下的就是還未被排序的數(shù)據(jù)。插入排序的思路就是從右側(cè)的未排序區(qū)域內(nèi)取出一個(gè)數(shù)據(jù),然后將它插入到已排序區(qū)域內(nèi)合適的位置上。 跟冒泡沒(méi)什么區(qū)別,每次從右邊取值后就弄一次冒泡。

在這里插入圖片描述

在這里插入圖片描述

堆排序

堆排序的特點(diǎn)是利用了數(shù)據(jù)結(jié)構(gòu)中的堆。首先,在堆中存儲(chǔ)所有的數(shù)據(jù),并按降序來(lái)構(gòu)建堆。所有數(shù)據(jù)都存進(jìn)堆里了。為了排序,需要再?gòu)亩阎邪褦?shù)據(jù)一個(gè)個(gè)取出來(lái)。每次取數(shù)只取堆頂(當(dāng)前最大值),將數(shù)放至數(shù)組的末尾,然后重新構(gòu)造堆,再取堆頂,放數(shù)至數(shù)組末尾前面,不斷重復(fù)直到數(shù)組填滿。

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

歸并排序

歸并排序算法會(huì)把序列分成長(zhǎng)度相同的兩個(gè)子序列,當(dāng)無(wú)法繼續(xù)往下分時(shí)(也就是每個(gè)子序列中只有一個(gè)數(shù)據(jù)時(shí)),就對(duì)子序列進(jìn)行歸并。歸并指的是把兩個(gè)排好序的子序列合并成一個(gè)有序序列。該操作會(huì)一直重復(fù)執(zhí)行,直到所有子序列都?xì)w并為一個(gè)整體為止。

有點(diǎn)小復(fù)雜,不過(guò)看圖秒懂,重點(diǎn)就是每次比較序列的首位數(shù)字。

在這里插入圖片描述

在這里插入圖片描述

快速排序

快速排序算法首先會(huì)在序列中隨機(jī)選擇一個(gè)基準(zhǔn)值(pivot),然后將除了基準(zhǔn)值以外的數(shù)分為“比基準(zhǔn)值小的數(shù)”和“比基準(zhǔn)值大的數(shù)”這兩個(gè)類別,再將其排列成以下形式。
在這里插入圖片描述

接著,對(duì)兩個(gè)“[ ]”中的數(shù)據(jù)進(jìn)行排序之后,整體的排序便完成了。對(duì)“[ ]”里面的數(shù)據(jù)進(jìn)行排序時(shí)同樣也會(huì)使用快速排序。

在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述

數(shù)組的查找

線性查找

線性查找的操作很簡(jiǎn)單,只要在數(shù)組中從頭開(kāi)始依次往下查找即可。
在這里插入圖片描述

二分查找

二分查找也是一種在數(shù)組中查找數(shù)據(jù)的算法。和線性查找不同,它只能查找已經(jīng)排好序的數(shù)據(jù)。二分查找通過(guò)比較數(shù)組中間的數(shù)據(jù)與目標(biāo)數(shù)據(jù)的大小,可以得知目標(biāo)數(shù)據(jù)是在數(shù)組的左邊還是右邊。因此,比較一次就可以把查找范圍縮小一半。重復(fù)執(zhí)行該操作就可以找到目標(biāo)數(shù)據(jù),或得出目標(biāo)數(shù)據(jù)不存在的結(jié)論。 就是人們腦里猜數(shù)經(jīng)常用的方法。

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

上一篇 ! 下一篇 !加油!

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
MOC3021SR2M 1 Rochester Electronics LLC 1 CHANNEL TRIAC OUTPUT OPTOCOUPLER, SURFACE MOUNT, DIP-6
$0.68 查看
FM25CL64B-GA 1 Ramtron International Corporation Memory Circuit, 8KX8, CMOS, PDSO8, GREEN, MS-012AA, SOIC-8
$4.61 查看
B39431R964H110 1 TDK Corporation 1-Port Saw Resonator, 434.15MHz Nom, ROHS COMPLIANT, SMD, DCC6E, 6 PIN
暫無(wú)數(shù)據(jù) 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜