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

2021-10-08 07:10:23 字數 865 閱讀 4216

我們在描述演算法複雜度時,常用o(1), o(n), o(logn), o(n logn)等表示對應演算法的時間複雜度,是演算法的時空複雜度的表示。不僅僅用於表示時間複雜度,也用於表示空間複雜度。這種表示法稱之為大o表示法

大o表示法是演算法的一種特殊的表示法,指出了演算法的速度有多快,它指出了演算法執行時間的增速。需要注意的是大o表示法指的並非以秒為單位的速度

主要可以用來表示時間複雜度和空間複雜度

簡單的說大o表示法僅僅只是定義當數量越多時演算法執行時間的增速,增速越慢,即代表演算法越快

o(1):是最低的時間複雜度,表示演算法的速度和數量無關,不論數量是多少,演算法的速度始終不變,也就是耗時/耗空間與輸入資料大小無關,無論輸入資料增大多少倍,耗時/耗空間都不變。 雜湊演算法就是典型的o(1)時間複雜度,無論資料規模多大,都可以在一次計算後找到目標(不考慮衝突的話)

o(n):也叫線性時間,表示演算法的速度和數量增加呈現線性增長。

典型演算法有:簡單查詢。

即在n個數中輪詢查詢a所處的位置,當n的數量+1時演算法查詢的次數也+1

**案例

o(log n):也叫對數時間

典型演算法有:二分查詢法

即當數量每擴大兩倍,查詢次數僅僅需要+1次,是一種隨著數量越多,演算法耗時增速越慢的演算法

**案例

o(n²):

典型演算法有:選擇排序、氣泡排序,是一種速度較慢的排序法

**案例

典型演算法有:快速排序法,是一種速度較快的排序法

**案例

是一種非常慢的演算法

即當數量為n時,查詢演算法耗時為a時,當數量+1時查詢演算法將耗時a*(n+1),當數量較多時耗時將變得非常大

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

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

大O表示法

用另乙個 通常更簡單的 函式來描述乙個函式數量級的漸近上界。大o表示法 稱乙個函式g n 是o f n 當且僅當存在常數c 0和n0 1對一切n n0均有 g n c f n 成立,也稱函式g n 以f n 為界或者稱g n 受限於f n 記作g n o f n 定義 如果乙個問題的規模是n,解這一...

大O表示法

大o表示法 汽交按尺寸被分為若干類 微型 小型 中型等等。在不提及具體尺寸的情況下,這些分類可以為我們所涉及到車的大小提供乙個大致慨念。我們同樣也需要一種快捷的方法來評價計算機演算法的效率,在電腦科學中,這種粗略的度量方法被稱作 大o 表示法。在比較演算法時似乎應該說一些類似 演算法a比演算法b快兩...