數(shù)據(jù)結(jié)構(gòu)與算法之美-28講堆和堆排序 特別備注 本系列非原創(chuàng),文章原文摘自極客時(shí)間-數(shù)據(jù)結(jié)構(gòu)算法之美[https://time.geekbang.org/column/int...
數(shù)據(jù)結(jié)構(gòu)與算法之美-28講堆和堆排序 特別備注 本系列非原創(chuàng),文章原文摘自極客時(shí)間-數(shù)據(jù)結(jié)構(gòu)算法之美[https://time.geekbang.org/column/int...
鏈表和數(shù)組是數(shù)據(jù)類型中兩個(gè)重要又常用的基礎(chǔ)數(shù)據(jù)類型。 數(shù)組是連續(xù)存儲(chǔ)在內(nèi)存中的數(shù)據(jù)結(jié)構(gòu),因此它的優(yōu)勢(shì)是可以通過(guò)下標(biāo)迅速的找到元素的位置,而它的缺點(diǎn)則是在插入和刪除元素時(shí)會(huì)導(dǎo)致...
冒泡排序 從最后一個(gè)元素開(kāi)始遍歷,每個(gè) 元素均與后一個(gè)元素做比較,較小的排到后面,在做了幾輪比較后,達(dá)到效果。 選擇排序 插入排序 計(jì)數(shù)排序 計(jì)數(shù)排序, 一般維持一個(gè)數(shù)據(jù)元素...
前言 本篇文章主要解決如下的問(wèn)題: 隊(duì)列的特點(diǎn)是什么? 如何實(shí)現(xiàn)一個(gè)隊(duì)列? 在什么場(chǎng)景下需要使用循環(huán)隊(duì)列? 阻塞隊(duì)列的特點(diǎn)和使用場(chǎng)景? 并發(fā)隊(duì)列的特點(diǎn)是什么? 隊(duì)列的具體使用...
遞歸就是在函數(shù)體內(nèi)調(diào)用本函數(shù)一般來(lái)說(shuō),遞歸需要有邊界條件、遞歸前進(jìn)段和遞歸返回段。當(dāng)邊界條件不滿足時(shí),遞歸前進(jìn);當(dāng)邊界條件滿足時(shí),遞歸返回。遞歸注意兩點(diǎn): 找規(guī)律 找出口,即...
在此之前,我們介紹了動(dòng)態(tài)規(guī)劃、深度優(yōu)先搜索等基礎(chǔ)算法,但是,有部分好友評(píng)論說(shuō),難度太難了,我們知道動(dòng)態(tài)規(guī)劃的自頂向下跟深度優(yōu)先搜索一般都用遞歸實(shí)現(xiàn),今天我們就先來(lái)講講算法與數(shù)...
1.遞歸與棧 無(wú)論是否遞歸調(diào)用,當(dāng)在一個(gè)函數(shù)(外層函數(shù))的運(yùn)行期間調(diào)用另一個(gè)函數(shù)(被調(diào)用函數(shù),即內(nèi)層函數(shù))時(shí),在運(yùn)行被調(diào)用函數(shù)之前,系統(tǒng)需要先完成3個(gè)操作,即: 將所有的實(shí)參...
1. 數(shù)組:為什么很多編程語(yǔ)言中數(shù)組都是從0開(kāi)始? 在大部分編程語(yǔ)言中,數(shù)組都是從0開(kāi)始編號(hào)的,但你是否下意識(shí)想過(guò),為什么數(shù)組要從0開(kāi)始編號(hào),而不是1開(kāi)始呢? 從1開(kāi)始不是更...