PHP7資料結構與演算法分析:前言

來,見證奇蹟發表於2018-01-26

enter image description here

前言


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

新術語和重點詞彙以黑體標示。

enter image description here這個圖示表示警告或需要特別注意的內容。

enter image description here這個圖示表示提示或者技巧

相關文章