日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

算法表示法之大O表示法

發布時間:2023/12/8 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 算法表示法之大O表示法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

    • 前言
    • 介紹
    • 時間復雜度
      • O(1)
      • O(n)
      • O(log n)
      • O(n2)
      • O(n * log n)
      • O(n!)

前言

我們在描述算法復雜度時,常用o(1), o(n), o(logn), o(n logn)等表示對應算法的時間復雜度,是算法的時空復雜度的表示。不僅僅用于表示時間復雜度,也用于表示空間復雜度。這種表示法稱之為大O表示法

介紹

大O表示法是算法的一種特殊的表示法,指出了算法的速度有多快,它指出了算法運行時間的增速。需要注意的是大O表示法指的并非以秒為單位的速度

主要可以用來表示時間復雜度和空間復雜度

簡單的說大O表示法僅僅只是定義當數量越多時算法運行時間的增速,增速越慢,即代表算法越快

時間復雜度

O(1)

O(1):是最低的時間復雜度,表示算法的速度和數量無關,不論數量是多少,算法的速度始終不變,也就是耗時/耗空間與輸入數據大小無關,無論輸入數據增大多少倍,耗時/耗空間都不變。 哈希算法就是典型的O(1)時間復雜度,無論數據規模多大,都可以在一次計算后找到目標(不考慮沖突的話)

O(n)

O(n):也叫線性時間,表示算法的速度和數量增加呈現線性增長。
典型算法有:簡單查找。
即在n個數中輪詢查找a所處的位置,當n的數量+1時算法查找的次數也+1

代碼案例

O(log n)

O(log n):也叫對數時間
典型算法有:二分查找法
即當數量每擴大兩倍,查詢次數僅僅需要+1次,是一種隨著數量越多,算法耗時增速越慢的算法

代碼案例

O(n2)

O(n2):
典型算法有:選擇排序、冒泡排序,是一種速度較慢的排序法

代碼案例

O(n * log n)

典型算法有:快速排序法,是一種速度較快的排序法

代碼案例

O(n!)

是一種非常慢的算法
即當數量為n時,查詢算法耗時為a時,當數量+1時查詢算法將耗時a*(n+1),當數量較多時耗時將變得非常大

總結

以上是生活随笔為你收集整理的算法表示法之大O表示法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。