資料結構(五)演算法總結

2021-07-23 16:45:49 字數 1040 閱讀 2102

最壞情況與平均情況

最壞情況時間是一種保證,那就是執行時間不會再壞了。在應用中,這是一種最重要的需求,通常,除非特別指定,我們提到的執行時間都是最壞情況的執行時間。

平均執行時間是所有情況中最有意義的,因為他是期望的執行時間。

一般在沒有特殊說明的情況下,都是指最壞時間複雜度。

演算法空間複雜度

演算法的空間複雜度通過計算演算法所需的儲存空間實現,演算法空間複雜度的計算公式記作:

s(n = o(f(n)),n為問題的規模,f(n)為語句關於n所佔儲存空間的函式。

演算法總結回顧

演算法的定義:解決特定問題求解步驟的描述,在計算機中表現為指令的有限序列,並且每條指令表示乙個或多個操作

演算法的特性:輸入輸出 有窮性 確定性 可行性

演算法設計的要求:正確性 可讀性 健壯性 時間效率高和儲存量低

演算法效率的度量方法:事後統計方法 事前分析估算方法

函式的漸進增長:給定兩個函式f(n)和g(n),如果存在乙個整數n,使得對於所有n >n,f(n) 總是比g(n)大,那麼,我們說f(n)的增長漸進快於g(n)

推導大o階方法

1.用常數1取代執行時間中的所有加法常數。

2.在修改後的執行次數函式中,只保留最高端項

3.如果最高端項存在且不是1,則去除與這個項相乘的常數

得到結果就是大o階

常見的時間複雜度所耗時間的大小排列:

o(1)< o(logn) < o(nlogn) < o(n^2) < o(n^3) < o(2^n) < o(n!)

程式設計總結(五)資料結構

0x00 前言 本部分總結了幾種常見的資料結構的c 實現,預計會包括線性表,廣義表,棧,佇列,樹,二叉樹,圖等等。0x01 線性表 1 順序表示 順序表優點 隨機訪問 缺點 插入刪除需要移動大量的元素 templateclass array array int n void insert int i...

資料結構與演算法(五)

雙端鍊錶和雙向鍊錶 一.雙端鍊錶 1.什麼是雙端鍊錶 鍊錶中儲存著對最後乙個鏈結點的引用的鍊錶 2.從頭部進行插入 要對鍊錶進行判斷,如果為空則設定尾結點為新新增的結點。3.從尾部進行插入 如果鍊錶為空,則直接設定頭結點為新新增的結點,否則設定尾結點的後乙個結點為新新增的結點。4.從頭部進行刪除 判...

資料結構與演算法(五)

三根針xyz,x上64個圓盤 設計思路 if n 1時,x z else 執行n 1的操作,直到n 1 1 由零個或多個字元組成的有限序列 是用一組位址連續的儲存單元來儲存串中的字串行,按照預定義的大小,為每個定義的字串變數分配乙個固定長度的儲存區,一般用定長陣列來定義 一般用順序儲存 樸素的模式匹...