原创 【PHP數據結構】PHP數據結構及算法總結

斷斷續續地把這個系列寫完了,就像上一個設計模式一樣,算法這個系列也是前前後後寫了將近有一年的時間。當然,都是在業餘或者晚上的時間寫完的,所以進度如此地慢。更主要的是,既然要寫,總得要自己先弄懂吧,對於一個沒上過高中的人來說,這還真的是有點困

原创 【PHP數據結構】其它排序:簡單選擇、桶排序

這是我們算法正式文章系列的最後一篇文章了,關於排序的知識我們學習了很多,包括常見的冒泡和快排,也學習過了不太常見的簡單插入和希爾排序。既然今天這是最後一篇文章,也是排序相關的最後一篇,那我們就來輕鬆一些,再來學習兩個非常簡單的排序算法。 簡

原创 【PHP數據結構】交換排序:冒泡、快排

上篇文章中我們好好地學習了一下插入類相關的兩個排序,不過,和交換類的排序對比的話,它們真的只是弟弟。甚至可以說,在所有的排序算法中,最出名的兩個排序都在今天要介紹的交換排序中了。不管是冒泡、還是快排,都是面試中的常見排序算法,常見到什麼地步

原创 【PHP數據結構】散列表查找

上篇文章的查找是不是有意猶未盡的感覺呢?因爲我們是真真正正地接觸到了時間複雜度的優化。從線性查找的 O(n) 直接優化到了折半查找的 O(logN) ,絕對是一個質的飛躍。但是,我們的折半查找最核心的一個要求是什麼呢?那就是必須是原始數據是

原创 【PHP數據結構】插入類排序:簡單插入、希爾排序

總算進入我們的排序相關算法的學習了。相信不管是系統學習過的還是沒有系統學習過算法的朋友都會聽說過許多非常出名的排序算法,當然,我們今天入門的內容並不是直接先從最常見的那個算法說起,而是按照一定的規則一個一個的介紹。 首先,我們要介紹的排序算

原创 【PHP數據結構】線性查找與二分查找

歡迎來到查找的世界,在學習完各種數據結構之後,總算走到了這一步,不知道大家有什麼感想呢?反正我是邊學邊忘,現在讓我去說說圖的那幾個算法還是在蒙圈的狀態中。不過學習嘛,就是一步一步的來,暫時搞不懂的東西其實也是可以放一放的。打破砂鍋和堅持不懈

原创 【PHP數據結構】圖的應用:最短路徑

上篇文章的最小生成樹有沒有意猶未盡的感覺呀?不知道大家掌握得怎麼樣,是不是搞清楚了普里姆和克魯斯卡爾這兩種算法的原理了呢?面試的時候如果你寫不出,至少得說出個大概來吧,當然,如果你是要考研的學生,那就要深入的理解並且記住整個算法的代碼了。

原创 【PHP數據結構】圖的遍歷:深度優先與廣度優先

在上一篇文章中,我們學習完了圖的相關的存儲結構,也就是 鄰接矩陣 和 鄰接表 。它們分別就代表了最典型的 順序存儲 和 鏈式存儲 兩種類型。既然數據結構有了,那麼我們接下來當然就是學習對這些數據結構的操作啦,也就是算法的部分。不管是圖還是樹

原创 【PHP數據結構】圖的應用:最小生成樹

在學習了圖的基本結構和遍歷方式後,我們再繼續地深入學習一些圖的基本應用。在之前的數據結構中,我們並沒接觸太多的應用場景,但是圖的這兩類應用確是面試或考試中經常出現的問題,而且出現的頻率還非常高,不得不來好好說一說。 什麼是最小生成樹? 從前

原创 【PHP數據結構】圖的存儲結構

圖的概念介紹得差不多了,大家可以消化消化再繼續學習後面的內容。如果沒有什麼問題的話,我們就繼續學習接下來的內容。當然,這還不是最麻煩的地方,因爲今天我們只是介紹圖的存儲結構而已。 圖的順序存儲結構:鄰接矩陣 什麼是鄰接矩陣 首先還是來看看如

原创 【PHP數據結構】圖的概念和存儲結構

隨着學習的深入,我們的知識也在不斷的擴展豐富。樹結構有沒有讓大家蒙圈呢?相信我,學完圖以後你就會覺得二叉樹簡直是簡單得沒法說了。其實我們說所的樹,也是圖的一種特殊形式。 圖的概念 還記得我們學習樹的第一篇文章時看到的那張關於樹的圖片嗎?

原创 【PHP數據結構】完全二叉樹、線索二叉樹及樹的順序存儲結構

在上篇文章中,我們學習了二叉樹的基本鏈式結構以及建樹和遍歷相關的操作。今天我們學習的則是一些二叉樹相關的概念以及二叉樹的一種變形形式。 完全二叉樹 什麼叫完全二叉樹呢?在說到完全二叉樹之前,我們先說另外一個名詞:“滿二叉樹”。像我們之前文章

原创 【PHP數據結構】二叉樹的遍歷及邏輯操作

上篇文章我們講了許多理論方面的知識,雖說很枯燥,但那些都是我們今天學習的前提,一會看代碼的時候你就會發現這些理論知識是多麼地重要了。首先,我們還是要說明一下,我們學習的主要內容是二叉樹,因爲二叉樹是最典型的一種樹的應用,不管是考試還是面試,

原创 【PHP數據結構】樹和二叉樹 樹

樹的概念其實非常地廣泛,也非常地常見,大家見到這個詞千萬不要驚慌,因爲真的每天你都能見到樹結構在我們生活中的應用。比如說公司的組織結構: 另外像我們家裏的族譜,或者說是我們的家庭結構,也是一個典型的樹結構。此外,在計算機領域,我們天天要打

原创 【PHP數據結構】棧和隊列的應用

通過棧和隊列的學習,我們似乎會感覺到其實數據結構還是非常簡單的嘛。當然,這只是一個開始,我們從順序表、鏈表開始,到現在的棧和隊列,其實都是爲了將來在鋪路。在樹和圖的遍歷算法中,都可以見到棧和隊列的身影。在這裏,我們先簡單的看看棧和隊列的一些