PHP7資料結構與演算法分析:前言
前言
PHP是非常流行的指令碼語言!現在世界上數以萬計的網路程式都有它的身影!而且它能力非凡!小到普通的個人部落格、企業網站,大到電商平臺、雲端計算!它都能身當重任!尤其是PHP新版本的發行--PHP7!帶來的語言層面上健壯性和效率的優化,更是給這門語言的發展給了美好的鋪墊!相信這門被很多人譽為“世界上最好的語言”的語言,在未來一定會發揮更大的潛力!
資料結構和演算法是軟體開發中非常重要的一部分!軟體開發人員從很大意義上說就是要解決實際問題!而資料結構和演算法就是開發人員的內功心法!
一門好的語言提供了凌厲的招式!而資料結構和演算法可以讓我們內功深厚!兩者結合而精深者,就是所謂的“高手”!
比武較量的過程一定會同時用到“招式”和“內功”!我們使用建立程式來解決問題也是同樣的道理!要很好的解決問題,建立出高效、優雅的程式來解決問題!一方面要求我們語言使用熟練!另一方面要求我們可以很好的掌握資料結構和演算法的相關知識!
而這本書,就是要用好的招式--PHP7,融入內功心法--資料結構和演算法!助你在精進的路上走的更好更快!成為真正的“高手”!
書中包含了我們原生實現的資料結構以及PHP內建的使用SPL構建的資料結構和演算法!相信這些內容大家一定會喜歡!
本書一切都為了想要精進的你!無論你是PHP新手,還是PHP專家,相信本書都可以給你豐碩的收穫!
來!讓我們一起精進!
本書結構
第1章“資料結構和演算法簡介”,將介紹資料結構和演算法的相關概念!帶領大家認識不同的的資料結構!
第2章“演算法天平:複雜度分析”,這一章我會帶領大家來分析我們演算法的優劣,將引入兩個非常中昂喲啊哦的概念:時間複雜度和空間複雜度。並且會帶領搭建認識大O表示法!這是一個很重要的概念!
第3章“陣列”,這一章的主角是PHP的陣列!我將會帶領大家深入理解PHP陣列,並定義和使用PHP陣列,並舉例實現一個資料結構!
第4章“連結串列”,本章主角是連結串列這種資料結構!我們將見識許多種類的連結串列結構!我們會通過大量的案例幫助大家來實現這種線性的儲存結構!
第5章“棧”,本章主角是棧這種資料結構!演示了建立棧以及棧的元素操作,還舉例說明棧的實用價值!
第6章“佇列”,本章主角是佇列這種資料結構,演示了佇列的建立,以及佇列中的元素的相關操作,還討論瞭如何用佇列解決實際問題,以及棧和佇列的主要區別。
第7章“遞迴”,本章主角是遞迴!我們將從計算機程式的底層分析遞迴的本質!相信在這裡,你會看到不一樣的遞迴!
第8章“排序演算法”,本章將一起探討常用的排序演算法,如氣泡排序、選擇排序、插入排序、歸併排序、快速排序,希爾排序和桶排序等,以及會對這些演算法進行分析並提出改進方案!
第9章“集合”,本章主角是集合這種資料結構!我們會分析集合的相關概念和操作。
第10章“字典和雜湊表”,我們將深入講解字典、雜湊表及的相關概念它們之間的區別。本章介紹了這兩種資料結構的宣告、建立和使用,探討如何解決雜湊衝突,以及如何建立更高效的雜湊函式。
第11章“樹”,樹是我們講解的一個重點內容!並給出相應的程式碼實現!重點討論了二叉搜尋樹,包含了很多概念和演算法內容,如BST樹,AVL樹,紅黑樹等。
第12章“圖”,本章主角是圖!這一章我會帶領大家學習關於圖的一大波先關術語!實現關於圖最常用的演算法!並理解非常重要的演算法思想!
第13章“搜尋演算法”,本章將討論常用的搜尋演算法,例如順序搜尋和二分搜尋等。
第14章“高階演算法進階”,介紹了一些演算法技巧和一些著名的演算法思想,如貪心演算法,動態規劃等!
準備工作
你所需要的僅僅是最新的PHP版本(最低是PHP7.0)! 本書所有的程式碼都可以在命令列下執行!所以不需要web伺服器的支援! 但是如果你想搭建更好的測試環境,推薦您搭建並使用以下環境:
- PHP 7.x+
- Nginx/Apache
- PhpStorm/Zend Studio
讀者物件
本書適合具有一定PHP基礎例如掌握了PHP基礎資料型別,控制結構和其他一些基本特性的開發人員! 並且想通過學習資料結構和演算法來更好的應用PHP來解決實際問題!或者想有效的提高解決實際問題的能力,增強程式的效率繼而使程式發揮最大效力的PHPer們!
排版約定
在本書中,你會發現一些不同的文字樣式,用以區別不同種類的資訊。下面舉例說明。
程式碼段的格式如下:
class Node {
//這裡是屬性和方法
}
如果我們想讓你重點關注程式碼段中的某個部分,會加粗顯示:
class Node {
public $left;
public $right;
public $key;
//其他方法
}
所有的命令列輸入或輸出的格式如下:
$ php XXXX
新術語和重點詞彙以黑體標示。
這個圖示表示警告或需要特別注意的內容。
這個圖示表示提示或者技巧
相關文章
- PHP7資料結構與演算法分析:第一章--資料結構和演算法簡介PHP資料結構演算法
- 資料結構|前言資料結構
- PHP7資料結構與演算法分析:第二章--演算法天平:複雜度分析PHP資料結構演算法複雜度
- 資料結構:初識(資料結構、演算法與演算法分析)資料結構演算法
- JavaScript 的資料結構和演算法 - 前言篇JavaScript資料結構演算法
- PHP7資料結構與演算法分析:序言--寫一本“素”味兒書PHP資料結構演算法
- 資料結構與演算法分析——棧資料結構演算法
- 資料結構與演算法分析——連結串列資料結構演算法
- 資料結構與演算法分析——佇列資料結構演算法佇列
- 《資料結構與演算法分析》筆記資料結構演算法筆記
- 資料結構與演算法分析 (雜湊)資料結構演算法
- PHP7資料結構與演算法分析:第三章--不一樣的陣列PHP資料結構演算法陣列
- 資料結構與演算法-資料結構(棧)資料結構演算法
- python之資料結構與演算法分析Python資料結構演算法
- 資料結構與演算法——複雜度分析資料結構演算法複雜度
- 跳躍表資料結構與演算法分析資料結構演算法
- javascript資料結構與演算法--基本排序演算法分析JavaScript資料結構演算法排序
- 資料結構與演算法分析 (優先佇列)資料結構演算法佇列
- 資料結構與演算法資料結構演算法
- 資料結構和演算法分析資料結構演算法
- 資料結構與演算法:圖形結構資料結構演算法
- 資料結構與演算法分析——開篇以及複雜度分析資料結構演算法複雜度
- 資料結構與演算法學習-複雜度分析資料結構演算法複雜度
- 樹 【資料結構與演算法分析 c 語言描述】資料結構演算法
- 資料結構與演算法分析 讀書筆記(樹)資料結構演算法筆記
- 【JavaScript 演算法與資料結構】JavaScript演算法資料結構
- 資料結構與演算法03資料結構演算法
- 演算法與資料結構——序演算法資料結構
- 資料結構與演算法——概述資料結構演算法
- 資料結構與演算法-堆資料結構演算法
- 資料結構與演算法02資料結構演算法
- 資料結構與演算法(1)資料結構演算法
- 資料結構與演算法——排序資料結構演算法排序
- 資料結構與演算法——字串資料結構演算法字串
- 資料結構與演算法(java)資料結構演算法Java
- 資料結構與演算法 - 串資料結構演算法
- 【資料結構與演算法】bitmap資料結構演算法
- 資料結構與演算法之線性結構資料結構演算法