假設陣列的長度為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 是一門研究組織資料方式的學科,有了程式語言也有了資料結構。學好資料結構可以編寫出更加漂亮 更加有效率的 要學習好資料結構就要多考慮如何將生活中遇到的問題,用程式去實現解決 程式 資料結構 演算法資料結構是演算法的基礎,換言之...