演算法
adt 抽象資料型別名
data
資料元素之間邏輯關係的定義
operation
操作1初始條件
操作結果描述
操作2...
操作n...
endadt
解決特定問題求解步驟的描述,在計算機中表現為指令的有限序列,並且每條指令表示乙個或多個操作。
判斷演算法的效率時,函式中的常數和其他次要項常常可以忽略而更關注最高次項的階數
演算法的時間複雜度是乙個函式,它定性描述該演算法的執行時間。這是乙個代表演算法輸入值的字串的長度的函式。時間複雜度常用大o符號表述,不包括這個函式的低階項和首項係數。使用這種方式時,時間複雜度可被稱為是漸近的,亦即考察輸入值大小趨近無窮時的情況。
最壞情況:最重要的需求,除非特別指定,我們提到執行時間的都是最壞情況的執行時間
平均情況:期望的執行時間
乙個演算法在執行過程中臨時占用儲存空間大小的量度,記做s(n)=o(f(n))
乙個演算法在計算機儲存器上所占用的儲存空間,包括儲存演算法本身所占用的儲存空間,演算法的輸入輸出資料所占用的儲存空間和演算法在執行過程中臨時占用的儲存空間這三個方面
演算法在執行過程中臨時占用的儲存空間隨演算法的不同而異,有的演算法只需要占用少量的臨時工作單元,而且不隨問題規模的大小而改變,我們稱這種演算法是「就地"進行的,是節省儲存的演算法,有的演算法需要占用的臨時工作單元數與解決問題的規模n有關,它隨著n的增大而增大,當n較大時,將占用較多的儲存單元,例如快速排序和歸併排序演算法就屬於這種情況。
直接插入排序的時間複雜度是o(n^2),空間複雜度是o(1) 。而一般的遞迴演算法就要有o(n)的空間複雜度了,因為每次遞迴都要儲存返回資訊
閱讀筆記 0x01 位運算
1.補碼表示 x 1 x 2.自然溢位 unsigned long long 自動對2 32取模,可以用來hash。3.基本位運算操作 左移 1 n 1 2n,n 2 4n,n 3 8n。算術右移 n 1 n 2 n 4 n 16。算術右移 除以2向下取整 e.g.3 1 2,3 1 1 p.s.整...
關於彙編 0x01記憶體
記憶體,與記憶體條不是乙個概念。在計算機中,每個程序都有自己的4gb記憶體空間,這個4gb的記憶體空間並不是真實的,而是系統分配的虛擬記憶體。虛擬記憶體 物理記憶體 記憶體條等其它硬體裝置 板卡記憶體 物理記憶體是用來跟硬體記憶體互相對映的,跟記憶體條的大小也不是一一對應的。如何通過虛擬記憶體如何找...
招聘程式設計題0x01
python3 coding utf 8 題目描述 請設計乙個高效演算法,再給定的字串陣列中,找到包含 coder 的字串 不區分大小寫 並將其作為乙個新的陣列返回。結果字串的順序按照 coder 出現的次數遞減排列,若兩個串中 coder 出現的次數相同,則保持他們在原陣列中的位置關係。給定乙個字...