最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

程序人生丨2021年最常用將會(huì)是這 8 種數(shù)據(jù)結(jié)構(gòu)算法,一定要了解

2021-01-08 16:51 作者:C語(yǔ)言編程__Plus  | 我要投稿

本篇文章將為大家介紹一下2021年最常用將會(huì)是這 8 種數(shù)據(jù)結(jié)構(gòu)算法,并向大家簡(jiǎn)單列舉該數(shù)據(jù)結(jié)構(gòu)的具體使用。


1.鏈表

程序員中一個(gè)流行的通用數(shù)據(jù)結(jié)構(gòu)是鏈表。現(xiàn)在考慮一下此數(shù)據(jù)結(jié)構(gòu)在實(shí)際應(yīng)用程序中的用途。?

我們所有人的手機(jī)上都有音樂播放器,并且上面有歌曲。假設(shè)您的清單上有5-6首歌曲。當(dāng)您為這些歌曲創(chuàng)建播放列表時(shí),它將在鏈接列表的概念上起作用。這些歌曲一一播放,這是單鏈接列表的最佳示例之一。歌曲已連接,您可以從第三首歌轉(zhuǎn)到第四首歌,但不能返回(單鏈列表的行為)。

當(dāng)您實(shí)現(xiàn)雙向播放歌曲的功能時(shí),它將遵循雙向鏈接列表的行為。在雙向鏈表中,節(jié)點(diǎn)雙向連接。因此,在播放列表中,您可以從歌曲3移至歌曲4,也可以從歌曲3移至歌曲2。您將具有上一個(gè)和下一個(gè)按鈕。因此雙向?qū)Ш绞强赡艿摹?

當(dāng)您以重復(fù)模式播放歌曲時(shí),它遵循循環(huán)鏈接列表的行為。在循環(huán)鏈表中,最后一個(gè)節(jié)點(diǎn)與第一個(gè)節(jié)點(diǎn)連接。因此,一旦最后一首歌曲完成,第一首歌曲將再次播放,并且將以循環(huán)模式播放,并且永不停止。?


2.二進(jìn)制搜索算法

作為程序員,您可能會(huì)知道二進(jìn)制搜索算法。此算法也稱為半間隔搜索,對(duì)數(shù)搜索或二進(jìn)制印章。在此算法中,我們?cè)谂判驍?shù)組中搜索目標(biāo)值。?

該算法使搜索過程更加容易,因?yàn)槟恍枰容^數(shù)字列表中的每個(gè)元素。二進(jìn)制搜索是在有序數(shù)據(jù)列表中搜索目標(biāo)值的快速方法。它使您有能力高效地執(zhí)行此過程。您可以找到許多二進(jìn)制搜索算法的示例,例如在字典中搜索單詞的含義,但是您知道使用二進(jìn)制搜索方法的真實(shí)應(yīng)用程序中的任何人嗎?

該算法的現(xiàn)實(shí)世界場(chǎng)景之一是驗(yàn)證應(yīng)用程序中的用戶憑據(jù)。使用二進(jìn)制搜索,您可以在幾秒鐘內(nèi)驗(yàn)證數(shù)百萬個(gè)用戶的憑據(jù)。?

此算法還用于許多編程語(yǔ)言庫(kù),例如Java,.NET,C ++ STL等。Python的list.sort()方法使用Timsort,后者(AFAIK)使用二進(jìn)制搜索來定位元素的位置。二進(jìn)制搜索還用于99%的3D游戲和應(yīng)用程序中。?

3.合并排序算法

合并排序適用于分而治之技術(shù)的概念。我們將列表分為幾個(gè)子列表,直到子列表不包含單個(gè)元素。之后,我們合并這些子列表以獲得元素的排序列表。這是對(duì)該算法的簡(jiǎn)單簡(jiǎn)短介紹,但您知道它在實(shí)際應(yīng)用中的何處使用。?

很多人喜歡通過任何電子商務(wù)網(wǎng)站進(jìn)行在線購(gòu)物。您知道這些電子商務(wù)網(wǎng)站使用此算法嗎?大多數(shù)電子商務(wù)網(wǎng)站的“您可能會(huì)喜歡”部分。本部分維護(hù)所有用戶帳戶的排列,然后根據(jù)您選擇的排列中反轉(zhuǎn)次數(shù)最少的那個(gè)開始,建議他們購(gòu)買或喜歡的東西。


4.阿姆斯特朗數(shù)

程序員中另一個(gè)受歡迎的程序是檢查該數(shù)字是否為Armstrong。在阿姆斯特朗數(shù)字中,一個(gè)數(shù)字的數(shù)字總和等于該數(shù)字本身。例如,153和371是阿姆斯特朗數(shù)。阿姆斯壯(Amstrong)編號(hào)主要用于數(shù)據(jù)安全應(yīng)用程序中以進(jìn)行數(shù)據(jù)加密和解密。

訪問IJITEE的鏈接。提到了無線傳感器網(wǎng)絡(luò)的Armstrong編號(hào)。他們使用了基于Armstrong的安全算法,其中使用Armstrong編號(hào)生成了128位密鑰。它在AES算法中用于數(shù)據(jù)加密和解密。?

5.霍夫曼編碼

霍夫曼編碼與加密和數(shù)據(jù)壓縮結(jié)合使用。它用于無損數(shù)據(jù)壓縮。根據(jù)概率,它的實(shí)現(xiàn)方式是您無需保留同一事物的多個(gè)副本。?

霍夫曼編碼是使用壓縮格式,如GZIP,PKZIP(winzip的,等等)和BZIP2。與互聯(lián)網(wǎng)之間的所有通信都使用霍夫曼編碼。大多數(shù)圖像文件(例如JPEG和PNG)均經(jīng)過霍夫曼編碼。同樣,音樂文件(例如MP3)也經(jīng)過霍夫曼編碼。?

霍夫曼代碼將定長(zhǎng)代碼轉(zhuǎn)換為變長(zhǎng)代碼。使用生成所需壓縮率的JPEG和MPEG技術(shù)對(duì)其進(jìn)行進(jìn)一步壓縮。?


6.動(dòng)態(tài)編程

對(duì)于計(jì)算機(jī)科學(xué)專業(yè)的學(xué)生和程序員而言,另一個(gè)最喜歡的主題是動(dòng)態(tài)編程。0-1背包問題,分詞問題,最長(zhǎng)公共子序列這些問題都是動(dòng)態(tài)編程中最流行和常見的問題。您解決了問題,使用了邏輯能力,但是在現(xiàn)實(shí)世界中實(shí)際使用該概念的地方……

動(dòng)態(tài)編程在生物信息學(xué),數(shù)學(xué)和經(jīng)濟(jì)學(xué)中被廣泛使用。生物信息學(xué)中的任務(wù),如序列比對(duì),蛋白質(zhì)折疊,RNA結(jié)構(gòu)預(yù)測(cè),和蛋白質(zhì)-DNA結(jié)合使用動(dòng)態(tài)編程。

在數(shù)學(xué)中,DP用于矩陣乘法,而Rocket技術(shù)廣泛使用DP。火箭的路徑是通過求解許多參數(shù)來確定的。使用動(dòng)態(tài)規(guī)劃可以最佳地解決所有決策問題。?

7.圖

無論您是在某個(gè)地方旅行,出門在外還是試圖找到通往特定目的地的路線。您可以在手機(jī)的Google Map中使用最好的朋友。您知道Google Map使用Graph數(shù)據(jù)結(jié)構(gòu)嗎?

圖形數(shù)據(jù)結(jié)構(gòu)是非常強(qiáng)大的數(shù)據(jù)結(jié)構(gòu)。該圖不僅可以表示地球,還可以表示整個(gè)宇宙。從微小的亞原子粒子到巨大的宇宙,您都可以借助Graph來表示每件事。?

使用Google地圖時(shí),所有城市和州都像帶有距離信息的圖形一樣連接在一起。從一個(gè)城市到達(dá)另一個(gè)城市有很多方法,但是要找到兩個(gè)城市之間的最短路徑,您需要使用一些算法。Dijkstra的算法是一種非常強(qiáng)大的算法,可以用來找到兩個(gè)城市之間的最短路徑。?

為了確定到達(dá)目的地的最短路徑,Dijkstra的算法可在手機(jī)中啟用導(dǎo)航系統(tǒng)/ GPS。Uber使用匈牙利算法將每輛車分配給尋找乘車的人。?

Facebook還使用圖形數(shù)據(jù)結(jié)構(gòu)來實(shí)現(xiàn)新聞提要或關(guān)注者。它使用Graph API在其應(yīng)用程序中實(shí)現(xiàn)大多數(shù)功能。一切都可以由頂點(diǎn)或節(jié)點(diǎn)來表示,例如頁(yè)面,位置,組,評(píng)論,照片,相冊(cè),故事,視頻,便箋等。每個(gè)連接或關(guān)系都是Facebook上的優(yōu)勢(shì)。Graph API以頂點(diǎn)和邊的形式存儲(chǔ)數(shù)據(jù)。?


8.Trie數(shù)據(jù)結(jié)構(gòu)

這是程序員的高級(jí)數(shù)據(jù)結(jié)構(gòu)主題。您了解到它可能是為了工作,您也喜歡根據(jù)它解決問題,但是此高級(jí)主題在實(shí)際應(yīng)用程序中的用途是什么。它在我們的日常生活中在哪里實(shí)現(xiàn)?讓我們得出一個(gè)有趣的答案……

您每天都在使用手機(jī),還使用其中的滑動(dòng)功能。您的移動(dòng)鍵盤中的這種滑動(dòng)功能以及在編寫文檔時(shí)自動(dòng)更正使用Trie數(shù)據(jù)結(jié)構(gòu)。Trie數(shù)據(jù)結(jié)構(gòu)將字符值保存在手機(jī)中。?

網(wǎng)絡(luò)瀏覽器歷史記錄也使用Trie數(shù)據(jù)結(jié)構(gòu)。您訪問過的站點(diǎn)的URL由Trie數(shù)據(jù)結(jié)構(gòu)組織。當(dāng)用戶鍵入以前使用的URL的前綴時(shí),瀏覽器將使用此功能強(qiáng)大的數(shù)據(jù)結(jié)構(gòu)來完成URL。?

寫在最后

現(xiàn)在,您是否已經(jīng)了解到這八種數(shù)據(jù)結(jié)構(gòu)了呢?這基本都是和我們自身離不開的,每一位程序員在進(jìn)行項(xiàng)目開發(fā)時(shí),也會(huì)應(yīng)用到其中的幾種。所以,數(shù)據(jù)結(jié)構(gòu)與算法,對(duì)于我們每一個(gè)人,無論是已經(jīng)是程序員還是在這條路上努力的小伙伴而言,這都是非常重要的。

另外筆者是一名CC++的程序員,如果你想更好的提升你的編程能力,好好學(xué)習(xí)C/C++編程知識(shí)的話!那么你很幸運(yùn)~

UP在主頁(yè)上傳了一些學(xué)習(xí)C/C++編程的視頻教程,有興趣或者正在學(xué)習(xí)的小伙伴一定要去看一看哦!會(huì)對(duì)你有幫助的~

分享(源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門教程)

歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長(zhǎng)比自己琢磨更快哦!

編程學(xué)習(xí)書籍:


編程學(xué)習(xí)視頻:



程序人生丨2021年最常用將會(huì)是這 8 種數(shù)據(jù)結(jié)構(gòu)算法,一定要了解的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
甘洛县| 镇赉县| 东乌珠穆沁旗| 彰化县| 宁津县| 灌云县| 嵊泗县| 涡阳县| 青神县| 灵武市| 岑溪市| 辽宁省| 阜南县| 封开县| 西乡县| 孙吴县| 定西市| 肥乡县| 郎溪县| 修武县| 山阳县| 高阳县| 宜宾市| 南投市| 彰化市| 运城市| 黄龙县| 略阳县| 阜城县| 巴里| 西昌市| 临江市| 浦北县| 宜丰县| 万山特区| 四子王旗| 波密县| 怀柔区| 连云港市| 外汇| 库伦旗|