2021 02 19 演算法簡介

2021-10-19 14:28:28 字數 2832 閱讀 2668

輸入: 演算法具有0個或多個輸入

輸出: 演算法至少有1個或多個輸出

有窮性: 演算法在有限的步驟之後會自動結束而不會無限迴圈,並且每乙個步驟可以在可接受的時間內完成

確定性:演算法中的每一步都有確定的含義,不會出現二義性可行性:演算法的每一步都是可行的,也就是說每一步都能夠執行有限的次數完成

我們假定計算機執行演算法每乙個基本操作的時間是固定的乙個時間單位,那麼有多少個基本操作就代表會花費多少時間單位。由此可以忽略機器環境的影響而客觀的反應演算法的時間效率。

對於單調的整數函式f,如果存在乙個整數函式g和實常數c>0,使得對於充分大的n總有f(n)<=c*g(n),就說函式g是f的乙個漸近函式(忽略常數),記為f(n)=o(g(n))。也就是說,在趨向無窮的極限意義下,函式f的增長速度受到函式g的約束,亦即函式f與函式g的特徵相似。

時間複雜度:假設存在函式g,使得演算法a處理規模為n的問題示例所用時間為t(n)=o(g(n)),則稱o(g(n))為演算法a的漸近時間複雜度,簡稱時間複雜度,記為t(n)

分析演算法時,存在幾種可能的考慮:

演算法效率關係

)nn)timeit模組可以用來測試一小段python**的執行速度。

class timeit.timer(stmt=『pass』, setup=『pass』, timer=)

timer是測量小段**執行速度的類;stmt引數是要測試的**語句(statment);setup引數是執行**時需要的設定;timer引數是乙個定時器函式,與平台有關。

timeit.timer.timeit(number=1000000)

timer類中測試語句執行速度的物件方法。number引數是測試**時的測試次數,預設為1000000次。方法返回執行**的平均耗時,乙個float型別的秒數。

示例**:

2021 02 19 必須?是否自己在害怕什麼?

18 00 第一句話,冷靜觀察 第二句話,穩住陣腳 第三句話,沉著應付。不要急,也急不得。要冷靜 冷靜 再冷靜,埋頭苦幹,做好一件事,我們自己的事。明天就是公司上班的第一天了,雖然我現在已經在公司工作了,但畢竟不是官方的工作時間,需要做事的靈活性還是強一些,而這靈活性指的是我工作的心理。我記得放假的...

RSA演算法簡介

rsa演算法簡介 1 簡介 當前最著名 應用最廣泛的公鑰系統rsa是在1978年,由美國麻省理工學院 mit 的rivest shamir和adleman在題為 獲得數字簽名和公開鑰密碼系統的方法 的 中提出的。它是乙個基於數論的非對稱 公開鑰 密碼體制,是一種分組密碼體制。其名稱來自於三個發明者的...

演算法分析(簡介)

演算法分析即指對乙個演算法所需要的資源進行 記憶體,通訊頻寬或計算機硬體等資源偶爾是我們主要關心的,乙個演算法所需要的資源越多,該演算法的複雜性越高,反之,所需要的資源越少,該演算法的複雜性越低,在計算機的資源中,最重要的是時間和空間 即儲存器 資源,因此演算法複雜性有時間複雜性和空間複雜性之分,不...