資料結構與演算法 2

2021-10-09 19:04:00 字數 1074 閱讀 6622

遞迴問題必須遵循此模型時,子問題規模必須相等,可以直接得出時間複雜度,其中:

n:問題規模

n/b:子問題規模

a:子問題呼叫了a次

a,b,d都是常數

例子,遞迴求陣列最大值演算法,其時間複雜度模型為t(n) = 2 * t(n/2) + o(n^0)結果為o(n),計算方法如圖

n為陣列長度

b為2,因為子問題規模為n/2

a為2,因為分成兩個子問題

d為0,因為其他邏輯均為常數時間複雜度

public

class

getmax

public

static

intprocess

(int

arr,

int left,

int right)

int mid = left +

((right - left)

>>1)

;//常數複雜度

int leftmax =

process

(arr, left, mid)

;//子問題 n/2規模,第一次呼叫

int rightmax =

process

(arr, mid, right)

;//子問題 n/2規模,第二次呼叫

return leftmax > rightmax ? leftmax : rightmax;

}}

如何用棧實現佇列:兩個棧來回倒

如何用佇列實現棧:兩個佇列來回倒

以下問題,請見**github

如何用陣列實現固定大小的棧或者佇列?

如何獲取棧中資料的最小值?

資料結構與演算法(2)

程式設計 資料結構 演算法 資料元素 是組成資料的 有一定意義的基本單位,在計算機中通常作為整體處理。資料項 乙個資料元素可以由若干個資料項組成。資料項是資料不可分割的最小單位。資料物件 是性質相同的資料元素的集合,是資料的子集。資料結構 是相互之間存在一種或多種特定關係的資料元素的集合。邏輯結構 ...

資料結構與演算法(2)

鏈結參考 資料結構是相互之間存在一種或多種特定關係的資料元素的集合 那麼具體是什麼關係呢,或者說,這裡的結構又是指什麼呢?按照視點的不同,我們把資料結構分為邏輯結構和物理結構 1,邏輯結構 是指資料物件中資料元素之間的相互關係 邏輯結構分為以下四種 2,物理結構 是指資料的邏輯結構在計算機中的儲存形...

資料結構與演算法2

資料邏輯結構分為線性結構與非線性結構,線性結構分為線性表,棧,佇列,字串,陣列,廣義表 非線性結構主要分為樹形和圖形棧佇列 1只能插入表尾,刪除表尾 1.插在表尾,刪除表頭 xianjin 2.後進先出 2.先進先出 3.例如十進位制轉換,檢驗括號是否匹配 4.棧的資料型別定義 初始化 銷毀 判斷是...