時間複雜度
講演算法中基本操作的執行次數座位演算法時間複雜度的度量
一般講最壞的時間情況作為演算法時間複雜度的度量
常用時間複雜度比較
o (1
)≤o(
log2
(n))
≤o(n
)≤o(
nlog
2(n)
)o(1)\leq o(log_(n))\leq o(n) \leq o(nlog_(n))
o(1)≤o
(log
2(n
))≤o
(n)≤
o(nl
og2
(n))
≤ o(
n2)≤
o(n3
)≤o(
nk)≤
o(2n
)\leq o(n^2) \leq o(n^3) \leq o(n^k) \leq o(2^n)
≤o(n2)
≤o(n
3)≤o
(nk)
≤o(2
n)資料資料是對客觀事物的符號表示
資料元素
資料元素是資料的基本單位
資料項資料項是資料結構中討論的最小單位
資料結構
資料的邏輯結構是對資料之間關係的描述
演算法有基本運算及規定的運算順序所構成的完整的解題步驟
演算法特新
有窮性、確定性、輸入(0個或多個輸入)、輸出(1個或多個輸出)、可行性。
演算法的設計目標
正確性、健壯性、可讀性
定義線性表是具有相同特性元素的乙個有限序列。所含元素個數叫做線性表的長度。
1.鍊錶節點的定義
typedef
struct node
node;
2.製作新節點//p為指標變數,指向新節點。p=(
*)malloc
(sizeof()
);//括號填寫 所定義的結構型名稱
//每執行一次會 得到新的節點,並返回位址給p
3.單鏈表
在每個節點中除了有資料域之外,還有乙個指標域,用來指向它的後繼節點。
帶頭結點的單鏈表中,頭指標head指向頭結點,頭結點的值域不包含任何資訊。
不帶頭結點的單鏈表中的頭指標head直接指向開始節點。
4.雙鏈表
為了解決終端節點反向走到開始節點,構造了雙鏈表。
雙鏈錶即在 單鏈表節點上增添了乙個指標域,指向當前節點的前驅。
同樣雙鏈表也分為帶頭結點和不帶頭結點的雙鏈表。帶頭結點的雙鏈表,當head->next為null時煉表為空。不帶頭結點的雙鏈表,當head為 null時煉表為空。
5.迴圈單鏈表
6.迴圈雙鏈表
7.靜態鍊錶
資料結構筆記
程式效率與組織方式有關 圖書館擺書 二分查詢 程式效率與操作有關 迴圈和遞迴 遞迴雖簡單不過耗費大量空間 程式效率與演算法有關 多項式求和 秦九韶要比普通演算法快乙個數量級 測試兩種演算法的 include include include define max 101 define maxl 1e7...
資料結構筆記
一 鄰接矩陣 鄰接矩陣儲存使用2個陣列儲存圖的資訊 1個以為陣列儲存頂點,乙個二維陣列儲存邊的資訊 1 二維陣列中的對角線為0,以為不存在頂點到自身的邊 2 要知道某個點的出度,就是頂點vi在第i行的元素之和,入度就是該頂點所在列的元素之和 3 頂點vi的所有鄰接點就是吧矩陣中第i行元素掃瞄一遍 4...
資料結構筆記
二叉樹的遍歷操作 二叉樹的遍歷是指從根結點出發,按照某種次序 訪問二叉樹中的所有結點,使得每個結點被訪問一 次且僅被訪問一次。抽象操作,可以是對結點進行的各種 處理,這裡簡化為輸出結點的資料。前序遍歷 中序遍歷 後序遍歷 層序遍歷 查詢的基本概念 靜態查詢適用於 查詢集合一經生成,便只對其進行 查詢...