我們先來看一個例子。 這是什么?是一個圖?不對,確切的說這是一棵樹。這哪里像樹呢?不要着急我們來變換一下。 ...
之前講了三種常用的經典排序。排序算法還有很多,例如選擇排序 計數排序 基數排序 插入排序 歸並排序和堆排序等等。堆排序是基於二叉樹的排序,以后再說吧。先分享一個超酷的排序算法的視頻。 再來看一個具體的例子 小哼買書 來看看三個排序在應用上的區別和局限性。 小哼的學校要建立一個圖書角,老師派小哼去找一些同學做調查,看看同學們都喜歡讀哪些書。小哼讓每個同學寫出一個自己最想讀的書的ISBN號 你知道嗎 ...
2014-03-03 09:57 5 3951 推薦指數:
我們先來看一個例子。 這是什么?是一個圖?不對,確切的說這是一棵樹。這哪里像樹呢?不要着急我們來變換一下。 ...
上一節中我們學習了隊列,它是一種先進先出的數據結構。還有一種是后進先出的數據結構它叫做棧。棧限定只能在一端進行插入和刪除操作。比如說有一個小桶,小桶的直徑只能放一個小球,我們現在向 ...
暑假,小哼准備去一些城市旅游。有些城市之間有公路,有些城市之間則沒有,如下圖。為了節省經費以及方便計划旅程,小哼希望在出發之前知道任意兩個城市之前的最短路程。 上圖中有4個城市8條公路,公路上的數字表示這條公路的長短。請注意 ...
上周我們介紹了神奇的只有五行的Floyd最短路算法,它可以方便的求得任意兩點的最短路徑,這稱為“多源最短路”。本周來來介紹指定一個點(源點)到其余各個頂點的最短路徑,也叫做“單源最短路徑”。例如求下圖中的1號頂點到2、3、4、5、6號頂點的最短路徑 ...
之前我們介紹過圖的鄰接矩陣存儲法,它的空間和時間復雜度都是N2,現在我來介紹另外一種存儲圖的方法:鄰接表,這樣空間和時間復雜度就都是M。對於稀疏圖來說,M要遠遠小於N2。先上數據,如下 ...
【啊哈!算法】 在我們生活的這個世界中到處都是被排序過的。站隊的時候會按照身高排序,考試的名次需要按照分數排序,網上購物的時候會按照價格排序,電子郵箱中的郵件按照時間排序……總之很多東西都需要排序,可以說排序是無處不在。現在我們舉個具體的例子來介紹一下排序算法 ...
【啊哈!算法】系列 上一節的冒泡排序可以說是我們學習第一個真正的排序算法,並且解決了桶排序浪費空間的問題,但在算法的執行效率上卻犧牲了很多,它的時間復雜度達到了O(N2)。假如我們的計算機每秒鍾可以運行10億次,那么對1億個數進行排序,桶排序則只需要0.1秒 ...
二叉樹是一種特殊的樹。二叉樹的特點是每個結點最多有兩個兒子,左邊的叫做左兒子,右邊的叫做右兒子,或者說每個結點最多有兩棵子樹。更加嚴格的遞歸定義是:二叉樹要么為空,要么由根結點、左子樹和右子樹組成 ...