資料結構與演算法之美第一天學習總結

2021-10-21 19:32:37 字數 894 閱讀 2134

一、o(1):

int x = 1;

int y = 2;

int sum = x + y;

注意:只要演算法不存在迴圈語句、遞迴語句,即使有成千上萬行的**,其時間複雜度也就是o(1)。

二、o(logn):

i = 1;

while(i <= n)

//該時間複雜度為o(log2n)

i = 1;

while(i <= n)

//該時間複雜度為o(log3n)

注意:不管是以 2 為底、以 3 為底,還是以 10 為底,我們可以把所有對數階的時間複雜度都記為 o(logn)。

三、o(m+n)

int cal(int m, int n) 

int sum_2 = 0;

int j = 1;

for (; j < n; ++j)

return sum_1 + sum_2;

}

從**中可以看出,m 和 n 是表示兩個資料規模。我們無法事先評估 m 和 n 誰的量級大,所以我們在表示複雜度的時候,就不能簡單地利用加法法則,省略掉其中乙個。所以,上面**的時間複雜度就是 o(m+n)。

void print(int n) 

}

跟時間複雜度分析一樣,我們可以看到,第 2 行**中,我們申請了乙個空間儲存變數 i,但是它是常量階的,跟資料規模 n 沒有關係,所以我們可以忽略。第 3 行申請了乙個大小為 n 的 int 型別陣列,除此之外,剩下的**都沒有占用更多的空間,所以整段**的空間複雜度就是 o(n)。

資料結構與演算法學習之第一天

本文內容較為簡潔,適合學過的同學進行回顧。資料結構 就是關係,資料之間關係的集合。分為 邏輯結構和物理結構 邏輯結構 資料元素的相互關係。1.集合結構 集合中資料無相互關係 2.線性結構 一對一關係 3.樹形關係 一對多關係 4.圖形結構 多對多關係 物理結構 邏輯結構在計算機中的儲存形式 即資料元...

資料結構 第一天 緒論與演算法

資料結構 是相互之間存在一種或者多種特定關係的資料元素的集合。資料結構分邏輯結構 物理結構 邏輯結構 集合結構 線性結構 樹形結構 圖形結構 物理結構 順序儲存結構 鏈式儲存結構 資料型別 指一組性質相同的值的集合及定義在此集合上的一些操作的總稱。在c語言中資料型別可分為 原子型別 不可再分基本型別...

學習資料結構的第一天

今天學習的是線性表之 順序表 include include define maxsize 100 定義最大表長 typedef int elemtype typedef struct sqlist 建立空表 bool initlist sqlist l i 按位置取值 第i個 bool getel...