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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

时间复杂度的理解

發布時間:2025/7/25 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 时间复杂度的理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

『 O(某函數())』用來描述一個算法處理給定的數據大概需要多少次運算。

  - 大O符號是一種算法復雜度的相對表示方式。

  這句話中有三個重要的用詞,只要理解它們,就能知道它到底是什么意思了:

    1、相對(relative):你只能比較相同的事物。你不能把一個做算數乘法的算法和排序整數列表的算法進行比較。

      就好比拳擊比賽需要分重量級進行比賽一樣,這樣的比較是沒有意義的。

    2、表示(representation):大O(用它最簡單的形式)把算法間的比較簡化為了一個單一變量。這個變量的選擇基

      于觀察或假設。例如,處理某一個問題,有三種算法可以解決,它們的時間復雜度分別是O(n),O(logn),O(n2),

      這樣就能很快比較出這三種算法的優劣了。而里面的變量是多少,取決于算法是什么樣的模式,它們在運算過程中

      做了什么樣的操作。

    3、復雜度(complexity):如果排序10,000個元素花費了我1秒,那么排序1百萬個元素會花多少時間?

      在這個例子里,復雜度就是相對其他東西的度量結果。

  - 算術可以讓我們更好的理解大O:

    這里我們可以聯系小學學的豎式運算來理解:

    1)當我們進行加法運算時,我們需要對每一位上的數做一遍加法,所以,當我們進行2個4位數的加法時,就需要算4次,

      如若進位,就需要多算一次,100位數相加就需要做100次運算,以此類推;減法的模式和加法類似,只是借位替代了進位;

    2)我們在做乘法運算時,需要將每1位數字與另一個數字的每1位相乘,再做加法,所以兩個n位數想乘,就要

      先做n2次乘法,再做大概2n次加法來得到最終結果。

    - 上面的兩個例子都是用來解決兩個數字的運算問題的,但它們的模式不一樣,經歷的過程不一樣,所以復雜度就不一樣,

    加法的模式中,位數和運算操作是成正比的,所以它的時間復雜度可以用O(n)表示;

    而乘法的模式中,它是以平方的方式進行增長,它的時間復雜度可以用O(n2+2n)表示。

    我們只關心復雜度最重要的部分:乘法運算中,我們可以把操作次數表示為:n2?+ 2n。但當n特別大時,第二個 2n 就無關緊要。

    所以只需要用O(n2)就能表示乘法運算的時間復雜度

?

轉載于:https://www.cnblogs.com/value-code/p/8506340.html

總結

以上是生活随笔為你收集整理的时间复杂度的理解的全部內容,希望文章能夠幫你解決所遇到的問題。

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