《Java資料結構與演算法》第2章 陣列

2021-09-11 18:09:12 字數 989 閱讀 5555

假設陣列的長度為n,則:

操作不允許重複

允許重複

查詢n/2次比較

n次比較

插入無比較,一次移動

無比較,一次移動

刪除n/2次比較,n/2次移動

n次比較,多於n/2次移動

二分查詢演算法

二分查詢所需的比較次數

範圍所需比較次數104

1007

1000

1010000

14100000

171000000

2010000000

24100000000

271000000000

30示例

package secondchapter;

class ordarray

public int size()

public int find(long searchkey)

} }

public void insert(long value)

public boolean delete(long value)

{ int j = find(value);

if (j == nelems)

return false;

else

{ for (int k=j; k結果:

found 55

0 11 22 33 44 55 66 77 88 99

11 22 33 44 66 77 88

用大o表示法表示執行時間演算法

大o表示法表示的執行時間

線性查詢

o(n)

二分查詢

o(logn)

無序陣列的插入

o(1)

有序陣列的插入

o(n)

無序陣列的刪除

o(n)

有序陣列的刪除

o(n)

大話資料結構 第2章 演算法

3 演算法設計的要求 4 演算法效率的度量方法 5 函式的逐漸增長 6 演算法時間複雜度 7 常見的時間複雜度 8 最壞情況與平均情況 9 演算法空間複雜度 總結 演算法的定義 演算法是解決特定問題求解步驟的描述,在計算機中表現為指令的有限序列,並且每一條指令表示乙個或者多個操作。演算法的特性 輸入...

筆記 大話資料結構 第2章 演算法

寫乙個1 2 3 100求和程式int i,sum 0,n 100 執行了1次 for i 1 i n i 執行了n 1次 printf d sum 執行了1次 這樣可能不高效,高斯同學是這樣想的 int i,sum 0,n 100 執行了1次 sum 1 n n 2 執行了1次 printf d ...

第1章 資料結構與演算法概述

1.3 線性結構 非線性結構 宣告資料 data 結構 structure 是一門研究組織資料方式的學科,有了程式語言也有了資料結構。學好資料結構可以編寫出更加漂亮 更加有效率的 要學習好資料結構就要多考慮如何將生活中遇到的問題,用程式去實現解決 程式 資料結構 演算法資料結構是演算法的基礎,換言之...