所謂演算法,就是解決問題的一種方法或乙個過程。具體來講,演算法是由若干指令組成的有窮序列。演算法概念並不是計算機學科獨有的概念,生活到到處可見演算法的應用。
演算法要滿足4條性質:
1.輸入
2.輸出
3.確定性
4.有限性
複雜性: 時間複雜度(t)——演算法所求解問題規模n的
函式
漸進時間複雜度(o)——當問題規模趨向無窮大時,演算法時間複雜度的
數量級
當我們評價乙個演算法的時間效能時,主要標準就是演算法的漸進時間複雜度。
常見的時間複雜度,按數量級遞增排列依次為:常數階o(1)、對數階o(log2n)、線性階o(n)、線性對數階o(nlog2n)、平方階o(n^2)、立方階o(n^3)、k次方階o(n^k)、指數階o(2^n)。
t(n) = o(f(n)),用容易理解的話就是這兩個函式當整型自變數n趨向於無窮大時,兩者的比值是乙個不等於0的常數。
演算法基本概念
一什麼是演算法 解決問題的策略機制,重要的是思想 求滿足a b c 1000,a 2 b 2 c 2 條件的所有a,b,c 思路 列舉法,以下被注釋掉的語句就是列舉每個滿足條件的a,b,c 但是這段語句的演算法複雜度太大 改進 a,b的值就確定了c的值,故 改進演算法如下 import time s...
演算法基本概念
演算法 algorithm 評價演算法優劣的依據 複雜度 時間複雜度和空間複雜度 時間複雜度 time complexity eg.某兩個演算法的時間頻度是t n 100000n2 10n 6100000n 2 10n 6 100000 n2 1 0n 6 t n n2 t n n 2 t n n ...
演算法 基本概念
排序 氣泡排序 每次比較相鄰兩個元素大小,交換,直到末尾,迴圈執行 穩定 選擇排序 每次從待排序列中找出最大 最小 元素放在起始位置,迴圈執行 穩定 插入排序 不斷將新元素插入到前面已排好序的序列中 穩定,比冒泡和選擇更快 適於基本有序集合 希爾排序 插入排序的改進,將資料按步長分組,每組進行插入排...