1. 程式人生 > >關於時間 && 空間複雜度的個人見解

關於時間 && 空間複雜度的個人見解

淺析時間 && 空間複雜度

一般的,我們評估一種演算法的優劣,可以使用其演算法的時間複雜度和空間複雜度來進行測量。而不管時間複雜度還是空間複雜度,都習慣性的被分為三種情況:最好,平均,最壞。在現實應用中,我們一般思考的都是最壞的時間 && 空間複雜度,以此來討論分析一種演算法的執行時間的上界。接下來我會為大家淺談一下我對此的認識。

一.時間複雜複雜度

所謂時間複雜度,主要討論的是演算法執行的次數。
一般來說,程式設計師們大多采用大O漸進表示法描述一個演算法的時間複雜度。

演算法時間複雜度O(n)的表示方法:

  1. 用常數1取代執行時間中的所有加法常數 ;
  2. 在修改後的執行次數函式中,只保留最高階項;在修改後的執行次數函式中,只保留最高階項;
  3. 如果最高階項係數存在且不是1,則去除與這個項相乘的常數;如果最高階項係數存在且不是1,則去除與這個項相乘的常數;
  4. 遞迴演算法的時間複雜度 == 遞迴總次數*每次遞迴的次數
    空間複雜度 == 遞迴的深度(即樹的高度)

二.空間複雜度

所謂空間複雜度:即程式中變數的個數。