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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c++循环执行一个函数_20川大计算机 | 时间复杂度,你避不开的一个考点

發布時間:2024/1/23 c/c++ 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++循环执行一个函数_20川大计算机 | 时间复杂度,你避不开的一个考点 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文 彥 考 研

讓丨夢想丨有跡可循

這是20屆川大計算機 第 3 篇文章

零師姐 2017屆以初試353分,復試第2的成績考入四川大學計算機科學與技術專業。現于文彥考研擔任專業課導師,輔導川大874計算機綜合考研專業課。多次參與與IT公司的合作項目中,熟悉計算機專業的考研動態與就業形勢。

時間復雜度專場

學習數據結構,那么時間復雜度就是一個逃不過的話題。今天我們就來仔細看看它是什么?怎么計算時間復雜度?它怎么考?這三個問題。

我們把 算法需要執行的運算次數 用 輸入大小n 的函數 表示,即 T(n) 。

此時為了 估算算法需要的運行時間 和 簡化算法分析,我們引入時間復雜度的概念。

定義:存在常數 c 和函數 f(N),使得當 N >= c 時 T(N) <= f(N),表示為 T(n) = O(f(n)) 。

如圖:

算法的時間復雜度,用來度量算法的運行時間,記作: T(n) = O(f(n))。它表示隨著 輸入大小n 的增大,算法執行需要的時間的增長速度可以用 f(n) 來描述。

顯然如果 T(n) = n^2,那么 T(n) = O(n^2),T(n) = O(n^3),T(n) = O(n^4) 都是成立的,但是因為第一個 f(n) 的增長速度與 T(n) 是最接近的,所以第一個是最好的選擇,所以我們說這個算法的復雜度是 O(n^2) 。

那么當我們拿到算法的執行次數函數 T(n) 之后怎么得到算法的時間復雜度呢?

1、我們知道常數項對函數的增長速度影響并不大,所以當 T(n) = c,c 為一個常數的時候,我們說這個算法的時間復雜度為 O(1);如果 T(n) 不等于一個常數項時,直接將常數項省略。

2、我們知道高次項對于函數的增長速度的影響是最大的。n^3 的增長速度是遠超 n^2 的,同時 n^2 的增長速度是遠超 n 的。 同時因為要求的精度不高,所以我們直接忽略低此項。

3、因為函數的階數對函數的增長速度的影響是最顯著的,所以我們忽略與最高階相乘的常數。

綜合起來:如果一個算法的執行次數是 T(n),那么只保留最高次項,同時忽略最高項的系數后得到函數 f(n),此時算法的時間復雜度就是 O(f(n))。為了方便描述,下文稱此為 大O推導法。

由此可見,由執行次數 T(n) 得到時間復雜度并不困難,很多時候困難的是從算法通過分析和數學運算得到 T(n)。對此,提供下列四個便利的法則,這些法則都是可以簡單推導出來的,總結出來以便提高效率。

1、對于一個循環,假設循環體的時間復雜度為 O(n),循環次數為 m,則這個

循環的時間復雜度為 O(n×m)。

2、對于多個循環,假設循環體的時間復雜度為 O(n),各個循環的循環次數分別是a, b, c...,則這個循環的時間復雜度為 O(n×a×b×c...)。分析的時候應該由里向外分析這些循環。

3、對于順序執行的語句或者算法,總的時間復雜度等于其中最大的時間復雜度。

4、對于條件判斷語句,總的時間復雜度等于其中 時間復雜度最大的路徑 的時間復雜度。

時間復雜度分析的基本策略是:從內向外分析,從最深層開始分析。如果遇到函數調用,要深入函數進行分析。

時間復雜度其實并不難,通過這次我為你們準備的這幾道逐步“升級”的題目,再消化一下上述的知識點,相信你們應該已經有把握了。至于一些整理得更全面的干貨我也會全部在我的課上分享給你們的,你們放心吧。

就到暑假了,黃金復習時間同學們一定要好好把握,有疑問的地方不要自己愣著想,可以直接在群里問我,畢竟學習的時間那么寶貴,將疑問都拋給零師姐吧


掃碼入群~

獲取更多干貨~

加小彥微信

一對一咨詢~

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的c++循环执行一个函数_20川大计算机 | 时间复杂度,你避不开的一个考点的全部內容,希望文章能夠幫你解決所遇到的問題。

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