PHP數據結構之一:PHP數據結構基本概念—數據結構


學習任何一種技術都應該先清楚它的基本概念,這是學習任何知識的起點!本文是講述數據結構的基本概念,適合對數據結構已經有一定基礎的程序員,更是適合想要學習數據結構的code一族!讓我們開始PHP數據結構的篇章吧!

一、基本概念

(一)編寫解決實際問題的程序的一般過程:

1.如何用數據形式描述問題,即將問題抽象為一個數學模型;

2.問題所涉及到的數據量的大小及數據之間的關系;

3.如何在計算機中儲存數據及體現數據之間的關系;

4.處理數據時需要對數據執行的操作;

5.編寫的程序的性能是否良好。

(二)數據(Data) :

是客觀事物的符號表示,在計算機科學中指的是所有能輸入到計算機中並被計算機程序處理的符號的總稱。

(三)數據元素(Data Element) :是數據的基本單位,在程序中通常作為一個整體來進行考慮和處理。一個數據元素可由若干個數據項(Data Item)組成。數據項是數據的不可分割的最小單位。數據項是對客觀事物某一方面特性的數據描述。

(四)數據對象(Data Object):是性質相同的數據元素的集合,是數據的一個子集。如字符集合C={‘A’,’B’,’C,…} 。

(五)數據結構:相互之間具有一定聯系的數據元素的集合。

(六)數據的邏輯結構:數據元素之間的相互關系稱為邏輯結構。

(七)數據的邏輯結構有四種基本類型:

1.集合:結構中數據元素之間除了“屬於同一個集合”外,再也沒有其他的關系;

2.線性結構:結構中的數據元素存在一對一的關系;

3.樹形結構:結構中的數據元素存在一對多的關系;

4.網狀或者圖狀結構:結構中的數據元素存在多對多的關系;

(八)數據結構的儲存方式:由數據元素之間的關系在計算機中有兩種不同的表示方法順序表示和非順序表示,從則導出兩種儲存方式,順序儲存結構和鏈式儲存結構

1.順序存儲結構:用數據元素在存儲器中的相對位置來表示數據元素之間的邏輯結構(關系)。

2.鏈式存儲結構:在每一個數據元素中增加一個存放另一個元素地址的指針(pointer ),用該指針來表示數據元素之間的邏輯結構(關系)
順序結構:數據元素存放的地址是連續的;
鏈式結構:數據元素存放的地址是否連續沒有要求。
數據的邏輯結構和物理結構是密不可分的兩個方面,一個算法的設計取決於所選定的邏輯結構,而算法的實現依賴於所采用的存儲結構

(九)數據操作: 對數據要進行的運算

(十)數據類型(Data Type):指的是一個值的集合和定義在該值集上的一組操作的總稱。

(十一)算法(Algorithm):是對特定問題求解方法(步驟)的一種描述,是指令的有限序列,其中每一條指令表示一個或多個操作。

(十二)算法具有以下五個特性

1.有窮性: 一個算法必須總是在執行有窮步之后結束,且每一步都在有窮時間內完成。

2.確定性:算法中每一條指令必須有確切的含義。不存在二義性。且算法只有一個入口和一個出口。

3.可行性: 一個算法是能行的。即算法描述的操作都可以通過已經實現的基本運算執行有限次來實現。

4.輸入: 一個算法有零個或多個輸入,這些輸入取自於某個特定的對象集合。

5.輸出: 一個算法有一個或多個輸出,這些輸出是同輸入有着某些特定關系的量。

(十三)算法和程序是兩個不同的概念:一個計算機程序是對一個算法使用某種程序設計語言的具體實現。算法必須可終止意味着不是所有的計算機程序都是算法。

(十四)評價一個好的算法有以下幾個標准

1.正確性(Correctness ): 算法應滿足具體問題的需求。

2.可讀性(Readability): 算法應容易供人閱讀和交流。可讀性好的算法有助於對算法的理解和修改。

3.健壯性(Robustness): 算法應具有容錯處理。當輸入非法或錯誤數據時,算法應能適當地作出反應或進行處理,而不會產生莫名其妙的輸出結果。

4.通用性(Generality): 算法應具有一般性 ,即算法的處理結果對於一般的數據集合都成立。

5.效率與存儲量需求: 效率指的是算法執行的時間;存儲量需求指算法執行過程中所需要的最大存儲空間。一般地,這兩者與問題的規模有關。

(十五)算法的時間復雜度:算法中基本操作重復執行的次數是問題規模n的某個函數,其時間量度記作   T(n)=O(f(n)),稱作算法的漸近時間復雜度(Asymptotic Time complexity),簡稱時間復雜度。

(十六)算法的空間復雜度:是指算法編寫成程序后,在計算機中運行時所需存儲空間大小的度量。記作:   S(n)=O(f(n)),其中n為問題規模


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM