資料結構java版之大O表示法

2021-09-12 16:14:13 字數 601 閱讀 7199

通過圖我們可以比較不同的大o值,o(1)是優秀,o(logn)是良好,o(n)是還可以,o(n^2)則很差了,比如氣泡排序。

下面我們通過例子來看一下二分查詢法。就是我們玩過的遊戲猜數字,設定乙個陣列大小,乙個人心裡想乙個數,讓另外乙個人來猜。每次告訴他猜大了還是小了,直到猜中為止。看花了多少步。

/**

* 二分查詢法

* @param search 要查詢的數

* @param total 陣列長度

*/public void compute(int search,int total)

//花了多少次找到

int sum = 0;

//最小值

int min = 0 ;

//最大值

int max = total;

//當前猜的值

int current;

while (true)elseelse}}

}else

}

呼叫方法:

compute(3,100)

執行結果:

5025126

3找到了,花了5次

演算法表示法之大O表示法

我們在描述演算法複雜度時,常用o 1 o n o logn o n logn 等表示對應演算法的時間複雜度,是演算法的時空複雜度的表示。不僅僅用於表示時間複雜度,也用於表示空間複雜度。這種表示法稱之為大o表示法 大o表示法是演算法的一種特殊的表示法,指出了演算法的速度有多快,它指出了演算法執行時間的...

複雜度分析之大O表示法。

1 概要。好的程式設計表現出程式執行速度快,占用記憶體空間小的優點,分別對應時間複雜度和空間複雜度。2 複雜度分類兩種。演算法的時間複雜度是指演算法需要消耗的時間資源。演算法執行時間的增長率與f n 的增長率正相關,稱作漸近時間複雜度 asymptotic time complexity 簡稱時間複...

資料結構 最小表示法

1282 時鐘 有n個時鐘,每個時鐘有m個指標,p個刻度。時鐘是圓形的,p個刻度均分整個圓。每個時鐘每個指標指向整數刻度,並且每個時鐘自身指標指向的數字都不同。你可以任意旋轉時鐘的表盤,但是你不能轉指標。問最後有多少對時鐘可以變成相同的狀態。例如 n 5,m 2,p 4,5個時鐘的資料如下 經過旋轉...