算法復雜度的回顧,一般來說考察復雜度會和各種排序算法聯(lián)系起來。因此弄清這些排序算法的具體的操作步驟就能明白為什么相應的時間復雜度和空間復雜度是這么多。
常用的表示方法是大O表示法。大O表示法的特點是:只保留高階項,不考慮低階項,也不保留高階項的系數(shù)。
時間復雜度可以理解為是算法完成的常數(shù)操作數(shù)。所謂常數(shù)操作指的是,與數(shù)據(jù)量沒有有關系的并且在有限時間里面完成的操作,比如:賦值,加減乘除等。所有的常數(shù)操作都表示為O(1)。兩層從0到N-1的for循環(huán)的時間復雜度就是O(N^2)。
空間復雜度是在算法實施過程中需要額外的空間,O(1)指得是只需要多申請一個位置存放中間變量。
復雜度在比較的時候,O(1)<O(logn)<O(n)<O(nlogn)<O(n2)<O(n3)<O(2?)<O(n!)