大O表示法,指示演算法執行速度的方法 常見的執行時間

2021-09-05 09:17:19 字數 634 閱讀 5320

本文中logn指的是log以2為底n的對數,本文中所有的log都是以2為底。

大o表示法,指出了最糟糕的情況下的執行時間;

演算法的執行時間包括:最糟情況下的執行時間和平均情況下的執行時間。

假設列表有n個元素,遍歷查詢某個元素的位置,最多需要查詢n次。使用大o表示法,這個執行時間為o(n)

使用二分查詢法,最多隻需要查詢logn次,表示為o(log n)

o(n*log n) 快速排序等

o(n^2) 選擇排序等

o(n!) 0.0

有一位旅行商,需要前往5個城市,同時要確保旅程最短。。

如果你還記得排列組合的話,那真的是太棒了,如果你已經忘了,希望這可以幫你回憶起來:

5個城市總共有54321=120種方式。(排列)

當涉及6個城市的時候需要65…*.1= 720種,7個城市時有5040種;

當涉及n個城市時,需要執行n!(n的階乘)次操作才能計算出結果。因此執行時間為o(n!),即階乘時間。除非涉及的城市數很少,否則需要執行非常多的操作。如果涉及的城市數超過100,根本就不可能在合理的時間內計算出結果。

這種演算法很糟糕。但是我們別無選擇,這是電腦科學領域亟待解決的問題之一。面對這個問題,我們能做的只是去找出近似的答案,更詳細的解釋可以參考之後的文章。

演算法學習 大O表示法

上一節我們使用了兩種不同的方式來獲得兩個數的最大公約數,那麼如何判斷我們應該使用哪一種方式呢?這裡就涉及到了演算法的時間複雜度 空間複雜度 穩定性等幾個方面的因素,這次我們要討論的大o表示法就是用來表示時間複雜度。大o表示法法讓你能夠比較運算元,它指出了演算法執行時間的增速 演算法 在開始學習之前請...

大O表示法的理解

一.背景 在現實生活中,解決乙個問題可以有多種方法,其中有好的方法,也有較為一般的方法。評判標準雖有不同,但總體思想是 用最小的代價獲得最多的收益。這裡所說代價並不僅指金錢開銷,有時也包括時間,所耗費資源等。電腦程式也是為了解決問題而編寫的。同理可知,程式有好的,也有一般的,評判標準主要有兩方面 時...

如何評估演算法效能 大O表示法

一 請問如何評估乙個演算法的效能?什麼是大o表示法?答 評估演算法效能,主要評估問題的輸入規模n與元素訪問次數f n 的次數。大o符號,忽略非主體部分,如常數項 低階項。o g n g n 表示漸進上界。二 請說出以下程式的時間複雜度?for int i 1 i n i o n 線性複雜度 for ...