新技術的不斷出現,使得程序猿們十分的焦慮存捺,工作的單一讓學到的新技術無法得到實質的實踐,萬變不離其宗曙蒸,準備把數據結構和算法做一個系列博客的學習捌治,分享他人也是學習的記錄!
? 大? O時間時間復雜度:
? T(n)=O(f(n))纽窟,O表示時間復雜度和代碼運行次數有關系肖油,可知的常量的系數是可以不考? ? 慮的、O表示只和代碼的運行次數成正比臂港;一般情況下森枪,只要算法中不存在循環(huán)語句、遞歸語句审孽, 即使有成千上萬行的代碼县袱,其時間復雜度也是Ο(1)
? 加法法則:取并列代碼的 最大復雜度,如O(1)和O(2)取O(2)佑力。
? 乘法法則:f1嵌套了f2 其復雜度為 O(f1*f2)
? 常見的時間復雜度:
? 1. O(1):復雜度是已經知道的式散,不隨未知N 的增大而增大
? 2. O(m+n)、O(m*n) :不同代碼塊組成的復雜度搓萧,不能像加法那樣可以省略杂数,乘法還是適用用的宛畦;
2. O(logn)瘸洛、O(nlogn): 對數階時間復雜度,就是開方的次數
空間復雜度:
就是函數所占用計算機的空間:表示算法的存儲空間與數據規(guī)模之間的增長最好時間復雜度:常見的有O(1)次和,代碼最少的運行次數
最壞時間復雜度:代碼最多運行次數反肋,O(n)
平均復雜度:所有可能發(fā)生的次數的概率相加 除以 總的可能性
均攤時間復雜度:有規(guī)律的平均復雜度、這種情況也只有在有規(guī)律的特性下能用到:很少用到踏施,