標籤:資料結構 時間複雜度
首先瞭解一下資料結構中的概念(只為了對其有了感性認識)
資料:描述客觀事物的符號,是電腦中可以操作的對象,能夠被電腦識別,並輸入給電腦處理的集合符號。
資料不僅僅包括數值,還包括視頻、音頻、圖片等等
資料元素:是組成資料的、具有一定意義的基本單位,在電腦中通常作為一個整體進行處理,也稱為記錄。
資料項目:一個資料元素由若干個個資料項目組成。
可以將資料元素理解我資料庫中的一條記錄,而資料項目使其對應的屬性。資料項目是資料不可分割的最小單位。資料項目是資料的最小單位,資料元素是資料結構中討論的最小單位。
資料對象:是性質相同資料元素的集合,是資料的子集。
那麼什麼是資料結構呢?
是相互之間存在一種或多種特定關係的集合。
資料>資料對象>資料元素>資料項目
按照視點不同,可以將資料結構可以分為邏輯結構和物理結構
邏輯結構:資料對象中資料元素之間的相互關係。
邏輯結構|
|—集合結構:集合結構中,資料元素除了同屬一個集合,沒有其他關係
|—線性結構:線性結構中資料元素之間是一對一的關係
|—樹結構:樹結構之間的資料元素是一對多關聯性
|—圖結構:圖結構之間的資料元素是多對多的關係
物理結構:資料的邏輯結構在電腦中的儲存形式
物理結構|
|—順序儲存結構:把資料元素存放到放到地址連續的儲存單元中,其資料間的邏輯關係和物理關係一致。
|—連結儲存結構:把資料元素存放在任意的儲存單元裡,這組儲存單元可以是連續的,也可以是不連續的。
抽象資料類型(Abstract Data Type)ADT
資料類型:一組性質相同的值的集合及其定義在該集合上的一些操作。
什麼叫做抽象?
抽取事物具有的普遍性的本質。抽取出問題的特徵忽略非本質的細節,是對事物的一個概括。
what is ADT?
是指一個數學模型,及其定義在該模型上的操作。他包括資料及其對資料的操作。
ADT 抽象資料類型名
Data
資料元素之間的邏輯關係的定義
Operation
操作1
初始化條件
操作結果描述
操作2
......
操作n
.......
endADT
抽象資料類型體現了:問題分解、抽象和資訊隱藏。
什麼是演算法?
解決特定問題求解步驟的描述,在電腦中表示為指令的有序序列,並且每個指令表示一個或多個操作。
演算法的特性:輸入輸出、有窮性、確定性、可行性
演算法的度量—時間複雜度
進行演算法分析是,總的語句執行次數T(n)是關於n的函數,進而分析T(n)隨n的變化情況並確定數量級。演算法時間複雜度用O(f(n))表示,表示隨著問題規模n的增大,演算法執行時間的增長率和f(n)的增長率相同,所以稱為演算法的漸進時間複雜度,簡稱時間複雜度。
求取演算法時間複雜度:
推到大O階:
1、用常數1取代已耗用時間中的所有加法常數
2、修改後的運行次數函數中,只保留最高階項
3、去除與這個最高項的相乘的常數
常用的時間複雜度排序:
O(1)<O(logn)<O(nlogn)<O(n2)【n的2次方】<O(n3)【n的三次方】<O(2n) 【2的n次方】<O(n!)<O(nn)【n的n次方】
一般我們指的是最壞時間複雜度
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
資料結構—基礎知識