大O表示法及旅行者問題

2021-08-08 00:20:30 字數 866 閱讀 3795

演算法的執行時間

執行時間增速

不同演算法隨規模的增大而增大的速度不同

我們需要比較不同演算法的執行時間的增速

大o表示法【模擬資料結構中的時間複雜度】

比較運算元【其體現了演算法執行時間的增速】

這種表示法體現了演算法在最糟情況下的執行時間

【這不就是時間複雜度嗎】

在不同演算法比較時可以看出量級的差異,以選擇不同的演算法,但是針對乙個演算法求出增速或許可以根據其增速特性,新增不同的操作

常見的演算法增速

 o(log n),也叫對數時間,這樣的演算法包括二分查詢。

 o(n),也叫線性時間,這樣的演算法包括簡單查詢。

 o(n * log n),一種速度較快的排序演算法。

 o(n2),一種速度較慢的排序演算法。

 o(n!),一種非常慢的演算法

旅行者問題

乙個旅行者要前往5個城市

5個城市並不在一條直線上

旅行者要規劃一下路線,保證總路程最短

那麼總共有5*4*3*2*1種方案

他需要將所有方案列出來,並且計算出每種方案所需的路程

那麼需要計算120次

如果他要去往6個城市,就需要計算6*5*4*3*2*1次

如果他要去往n個城市,就需要計算n!次

如果他有100年的時間大約3153600000秒,每一秒可以計算出一種方案的結果,那麼他只能計算出去12個城市的所有方案(479001600),而如果是13個城市(6227020800)的話,那他就別想算出來了

這種問題的時間複雜度就是o(n!)

so,有沒有更好的演算法?

大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快兩...

大o表示法

下面是一些常用的時間複雜度以及簡單的定義 o 1 常量時間 o 1 表示該演算法的執行時間 或執行時占用空間 總是為乙個常量,不論輸入的資料集是大是小。bool isfirstelementnull ilistelements o n o n 表示乙個演算法的效能會隨著輸入資料的大小變化而線性變化。...