資料結構 演算法 線性表 順序表

2021-08-11 05:43:55 字數 2942 閱讀 3986

演算法是解決特定問題的步驟的描述。

在計算機中演算法是乙個有窮(或語句、指令)的有序集合。

它確定了解決某乙個問題的乙個運算序列。對於問題的初始輸入,通過演算法有限步的執行,產生乙個或多個輸出。

演算法是解決問題的思想方法;
程式是計算機語言的具體實現;
共同點:它們的語言不能有二義性

區別:演算法不依賴計算機語言,程式則必須依賴計算機語言實現

演算法是有窮的,程式可以是無窮的;

演算法可以忽略語法的細節,程式必須嚴格遵守它所對應的計算機語言的語法;

演算法設計:取決於選定的邏輯結構
演算法實現:依賴於採用的儲存結構

資料結構 + 演算法 = 程式
有窮性、確定性、可行性、輸入(不一定有輸入)、輸出(一定有乙個或多個輸出)
(1)正確性:能否正確的解決問題(最基本的一點)
(2)效率方面:消耗時間的多少、消耗儲存空間的多少
(3)程式設計方面:演算法的結構要好,要易於理解、編碼和除錯
(1)演算法的設計;
(2)演算法的輸入規模;
(3)編譯器對**的優化;
(4)計算機執行指令的速度;
事後統計法

缺陷:依賴於特定的計算機軟體與硬體, 需要花費大量精力設計測試程式和測試資料

事前估計法
根據演算法中語句執行的最大次數(頻度)來估算乙個演算法執行時間的數量級。
演算法中基本操作重複執行的次數是問題規模n的某個函式f(n)
t(n)=o(f(n))
它表示隨問題規模n的增大,演算法執行時間的增長率和f(n)的增長率相同。
計算t(n)的方法:
根據語句頻度,寫出表示式;
常數部分變為1;
只保留最高端專案,其餘的項捨去;
如果最高項有乘數且不為1,表示式除於最高端相乘的數;
演算法空間複雜度就是計算方法所需要的儲存空間的大小。
s(n)=o(f(n))

線性表就是零個或多個相同資料元素的有限序列。
l=(d,r)
d為所包含的元素集合
r為元素關係集合
(1)建立乙個空表:createlist(l);
(2)置空表:clearlist(l);
(3)判斷表是否為空:emptylist(l)
若為空,返回值為true(或1),否則返回false(或0);
(4)求表長:length(l);
(5)取表中某個元素:getlist(l,i),即ai,要求0<=i<=length(l)-1;
(6)定位運算:locate(l,x).確定元素x在表l中的位置(或序號);
(7)插入:insert(l,x,i).將元素x插入到表l中第i個元素ai之前,且表長+1;
(8)刪除:delete(l,i).刪除表l中第i個元素ai,且表長減1,要求0<=i<=n-1;
1-8為基本運算,此外,對線性表的運算還有:合併、拆分、複製、排序和遍歷等。
順序映像、鏈式映像

定義變數:last  1)有效數值的個數
2)最後乙個有效元素的下標

#define n 100

typedef int data_t;

typedef struct sqlist_t,*sqlink_t;

刪除:將表中第i個元素ai從表中刪除,即實現delesqlist(l,i).
思路:若引數i滿足:0<=i<=l->last,將表中l->data[i+1]到l->data[l->last]部分順序向上移動乙個位置,覆蓋l->data[i].
定位:確定給定元素x在表中第一次出現的位置(或序號)。即實現locate(l,x)。
思路:設一掃瞄變數i(初值為0),判斷當前表中元素ai是否等於x,若相等,則返回當前i值(表明x落在表的第i個位置);否則i加1,繼續下去。若表中無乙個元素與x相等,則返回-1.

資料結構與演算法 線性表順序儲存結構

今天總結一下資料結構中的線性表中的順序儲存結構,這是一種比較簡單的結構。首先,看一下什麼是線性表。什麼是線性表?線性表是一種簡單的資料結構,資料元素之間是一對一的關係,即除了第乙個和最後乙個元素外其餘元素都是首尾相接的。元素的個數稱為線性表的長度,長度為零則表示線性表為空。什麼是線性表的順序儲存結構...

資料結構與演算法 線性表

概念 一種資料結構,每個結點最多只有乙個前驅結點和乙個後繼結點 類別 順序表 定長 鍊錶 變長 棧 棧頂刪除 彈棧 棧頂插入 壓棧 後進先出 lifo 佇列 隊頭刪除 出隊 隊尾插入 入隊 先進先出 fifo 線性表的抽象資料型別定義 c 1.template2.class list 棧的抽象資料型...

資料結構與演算法 線性表

n維向量 x1,x2,xn 是乙個長度為n的線性表 英文小寫字母表 a,b,c,z 是乙個長度為26的線性表 一年中的四個季節 春,夏,秋,冬 是乙個長度為4的線性表 矩陣是乙個比較複雜的線性表 學生情況登記表是乙個複雜的線性表 由若干資料項組成的資料元素稱為記錄 由多個記錄構成的線性表又稱為檔案 ...