分析下面演算法(程式段)給出最大語句頻度該演算法的時間

2021-03-11 02:10:48 字數 655 閱讀 9558

1樓:愈升榮其寒

分析每一次bai迴圈可以發現du,當迴圈執zhi

行10次後x>100,y方才減1,此時daox被複原為回91;

如此下去,由於答每執行10次迴圈才使y減1,所以迴圈體執行100*10次,也就是說if語句判斷執行了1000次(但裡面的y--執行了100次)。至於時間複雜度,你現在資料都給定值了那不就是o(1)嗎……如果x、y沒給初值,則粗略地說應該為o(y)(或者說是o(10y))。

2樓:匿名使用者

一樓的回答是sb,希望那些沒好好學演算法的人就別在這裡禍害學生。

版時間複雜度很好算,權

實際上它是一個1+2+3.....+m=n的過程。等於n後迴圈終止。m好算吧?m=根號下(2n+1/4)-1/2.

所以時間複雜度是o(根號n).

3樓:匿名使用者

s=1+2+3+.....+i=【(1+i)i/2】

所以時間複雜度是o(√n)

根號不好打 反正就是根號下的n

4樓:匿名使用者

這段程式是錯的。.

正確的應該是:

i=s=0;

while (s

do 複雜度是n 只有一次迴圈 沒有巢狀迴圈.

C語言題求執行結果給出解釋 下列程式段執行後的輸出結果

這段 最抄後輸出的是 4,ps n應該是 n a?b c語句的意思是 1.假如a 邏輯表示式或0 1 的邏輯值為0,則語句的值為b b為表示式則取最後的值 2.假如a的邏輯值為1,則取c的值。在你的語句中a對應的為 k 不懂可追問 k 判斷 k 答案d應該是 4 而不是4 選a 條件運算子,右結合性...

執行下面的程式段後,變數k中的值為int k 3,s

請問你是c 呢 還是c 呢?如果c 的話 k 0 c k 隨機數。執行下面的程式段後變數k中的值為 int k 3,s 2 s 0 k k s 0 10 給你解答一下這段 希望對你有用 int k 3,s 2 定義一個常數k為3,陣列s 2 最多裝入3個數 s 0 k 把k等於3的值賦值給陣列s中儲...

下面程式段的執行結果是for y 1 y10yx 3 y,x 1 ,x 1 printf 「x d,y d」,x,y

3.x 15,y 14 要注意的是,表明取逗號後面的 值 還請注意 如果有x x 1這類,則需要更改x的值 現在版只有權x 1,x 1,x的值這麼做是不變的。每次迴圈的結果為 x 3 y 3,4 2 2x 6 y 6,7 5 5x 15 y 15,16 14 14這個是我實際用程式跑出來的,百分百準...