回覆列表
  • 1 # 使用者3977671246998

    1、時間複雜度是指執行演算法所需要的計算工作量。

    時間複雜度是一個函式,它定性描述了該演算法的執行時間。這是一個關於代表演算法輸入值的字串的長度的函式。時間複雜度常用大O符號表述,不包括這個函式的低階項和首項係數。

    2、空間複雜度是指執行這個演算法所需要的記憶體空間。

    空間複雜度需要考慮在執行過程中為區域性變數分配的儲存空間的大小,它包括為引數表中形參變數分配的儲存空間和為在函式體中定義的區域性變數分配的儲存空間兩個部分。

    空間複雜度也就是對一個演算法在執行過程中臨時佔用儲存空間大小的量度,記做S(n)=O(f(n))。比如直接插入排序的時間複雜度是O(n^2),空間複雜度是O(1) 。

    擴充套件資料:

    時間複雜度和空間複雜度往往是相互影響的。當追求一個較好的時間複雜度時,可能會使空間複雜度的效能變差,即可能導致佔用較多的儲存空間;相反的當追求一個較好的空間複雜度時,就可能會使時間複雜度的效能變差,即可能導致佔用較長的執行時間。

    因此,當設計一個演算法(特別是大型演算法)時,要綜合考慮演算法的各項效能,演算法的使用頻率,演算法處理的資料量的大小,演算法描述語言的特性,演算法執行的機器系統環境等各方面因素,才能夠設計出比較好的演算法。演算法的時間複雜度和空間複雜度合稱為演算法的複雜度。

    參考資料:

    參考資料:

  • 中秋節和大豐收的關聯?
  • “遲”字,在康熙字典裡是多少畫?