序
上個月老大給我們講解了"淺談大型網站的算法和架構",獲益匪淺。由於篇幅太多(光數據結構大概就有20多種),我也沒有辦法一下全部吸收,故我邊理解,邊分章節與大家分享。
這周我查閱資料,來理解各個數據結構和算法。
推薦幾本個人感覺不錯的書籍:——我把電子書放到
http://download.csdn.net/user/rtxbc這里了,需要下載,到這里進行下載。
《指針的藝術.蔡明志》——我只看了C語言這一篇。C語言個人感覺比較難的也就是指針了。
《數據結構 使用C語言[朱戰立]》——嚴蔚敏的也不錯,可就是里面的很多語法都是抽象語法,無法運行。我個人如果沒有辦法在終端運行,很難印象深刻。
《算法導論》
為了學習下載的電子書(截個圖):
算法結構
C語言
介紹
1984年,Pascal語義的發明者和結構化程序設計創始者,沃斯提出“算法 + 數據結構 = 程序“,從而獲得當年的圖靈獎。
現今技術日新月異,互聯網技術在不斷的發展中,從而也翻開了歷史的新篇章,這時有人提出了“算法 + 架構 = 互聯網程序“。
生活在這個時代的程序員來說,這又意味着什么呢?
從這篇文章開始,我將與各位淺談大型網站的算法和架構,今天先了解一下基礎知識,然后我們進行逐步過渡。
查找算法(單機)
1.有個無序數組。
2.找7到20之間的數,你的思路是什么?
無怪乎以下兩點:
1》冒泡排序
2》二分查找快
3.C代碼實現
執行結果
數組中插入數據
數組問題:插入太慢,得挪數據。
請看下面的代碼,

試試鏈表

鏈表插入數據
鏈表的特點是插入快,查找慢。
代碼實現:
實現方式
請看執行過程
於是有了二叉樹(Binary Tree)
我們不難發現上面的兩個結構(數組和鏈表)各有弊端。
1》數組在更新的時候比較消耗資源,需要挨個挪動后面的元素。
2》而鏈表在查詢的時候需要從頭挨個對比之后選擇出要查詢的內容。
綜上我們需要一個查詢更快,更新更快的結構,於是我們有了二叉樹。由於篇幅太長,下一篇繼續介紹。
推薦
