1樓:匿名使用者
#include
int max=0,may=0;
int array[5][5];
void remax()
c++中的時間複雜度o(1)與o(n)有什麼區別
2樓:杜xiao若
c++中的bai時間複雜度o(du1)與o(n)的主要區別在於:zhi
1、時間複雜度o(1)是常數階
dao,其基本
內操作重複執行的次數是一個固定的容常數,執行次數不存在變化;
2、而時間複雜度o(n)是線性階,其基本操作重複執行的次數是與模組n成線性相關的,其值會隨著模組n的變化而變化,當模組n的規模確定為定值後,其時間複雜度轉化為o(1)。
擴充套件資料1.時間複雜度的計算方法:
一般情況下,演算法中基本操作重複執行的次數是問題規模n的某個函式,用t(n)表示,若有某個輔助函式f(n),使得t(n)/f(n)的極限值(當n趨近於無窮大時)為不等於零的常數,則稱f(n)是t(n)的同數量級函式。記作t(n)=o(f(n)),稱o(f(n)) 為演算法的漸進時間複雜度,簡稱時間複雜度。
3樓:幻夢·人生
時間複雜度是
來一個函源數,它定量描述了該bai演算法的執行時間。常du
見的zhi時間複雜度有以下幾種。
1,daolog(2)n,n,n log(2)n ,n的平方,n的三次方,2的n次方,n!
1指的是常數。即,無論演算法的輸入n是多大,都不會影響到演算法的執行時間。這種是最優的演算法。而n!(階乘)是非常差的演算法。當n變大時,演算法所需的時間是不可接受的。
用通俗的話來描述,我們假設n=1所需的時間為1秒。那麼當n = 10,000時。
o(1)的演算法需要1秒執行完畢。
o(n)的演算法需要10,000秒 ≈ 2.7小時 執行完畢。
o(n2)的演算法需要100,000,000秒 ≈ 3.17年 執行完畢。
o(n!)的演算法需要******xx(系統的計算器已經算不出來了)。
可見演算法的時間複雜度影響有多大。
所以o(1)和o(n)差了2.7小時,區別顯而易見。
4樓:匿名使用者
你理解錯了,bai
我舉個du例子:
你設計了一個字串zhi類:客
dao戶有時需要知道字串的專長度,
所以有兩種屬設計getlength()函式的方法1。每次客戶詢問長度,你都用迴圈檢測串長,即for(i=0;str[i]!=0;++i)這樣效率低 時間複雜度o(n)
2 每次串內容改變時才算長度,算好後存起來,以後客戶需要知道字串的長度就直接把變數值返回這樣效率高 時間複雜度o(1)
5樓:匿名使用者
o(1)複雜度是與輸入資料copy
無關,baio(n)是與輸入資料成正比。
對於du程式zhia,for(int i=0;i<1000;i++),當輸入任意的n時迴圈次數dao均為1000,複雜度為o(1);
對於程式b,for(int i=0;i 1 程式是寫完源 後,計算機編譯後得到的可執行檔案。2 演算法一般結合數學思想,以下內容算是演算法 給陣列按大小排序 查詢陣列某元素 圖形處理演算法 音訊識別處理。但廣義上,用了順序分支迴圈就是演算法。演算法是指邏輯層面上解決問題方法的一種描述,一個演算法可以被很多不同的程式實現.演算法並不是程式或... 2型別是整型,0.5屬於浮點數,而你的函式宣告裡面第一個引數是浮點數,第二個引數是整型的,int轉float double可以隱式轉換,編譯器允許這種轉換,但是float double不能隱式轉換成int,這樣可能會造成資料丟失,編譯器不允許,除非你強制轉換 在vc 6.0中原型為double po... 的確哈,關鍵在於對delta的理解 可以看到,都是delta 2 1 radius 這樣的,起作用應該是判斷要畫的點x y座標的變化趨勢,先把我註釋了的 貼下,加了getch 可以看到畫的過程 include include void bresenhemcircle int centerx,int ...資料結構演算法c語言描述和c或c程式具體什麼關
C 中pow函式,C 中pow(x,y)函式怎麼用?最好給舉個例子
C語言用Bresenham演算法畫圓,哪位高手教教,主要是演算法裡的內容,謝謝