有一道資料額結構的題目不是很明白,for(i 0 in ifor(j 0 jn js

2021-05-02 11:30:16 字數 3295 閱讀 1961

1樓:殘雪黃昏

首先這個程式最佔用時間的3條語句是:i++,j++,s++。(本來i=0;i接下來說上面3條語句的執行時間,你的程式等價於下面這種格式:

for(i=0;i

這個一個雙重迴圈,處於迴圈最裡面的s++執行了n*n次,這個應該不難理解吧。

j++執行了n*(n+1)次:因為外層i執行了n次,j執行了n+1次。

i++執行了n+1次。

t(n)=o(f(n)) = o(2n*n+2*n+1)。但是我們說的是複雜度,複雜度的表示一般都只要把表示資料增長的性質表達出來就行了,而且是影響資料增長最主要的性質。何為資料增長的性質,比如說n,那就是線性增長;n*n,那就是平方增長,n*n*n,那就是3次方增長;log(n),那就是對數增長。

以上綜合,影響2n*n+2*n+1最主要的增長性質是n*n。所以複雜度就是o(n*n)。

2樓:匿名使用者

f(n)也就是語句執行次數是指所有語句執行的總次數,也就是for(i=0;i

for(j=0;j

o(n)出自大o演算法,就是時間複雜度,也就是在最壞情況下語句執行次數,實際上就是f(n)的最高次冪,也就是2n*n+2n+1中的n*n,前面的常數無所謂

for(i=0;i

3樓:你猜我猜哇擦猜

時間複雜度是o(n(m-1)),是平方級的演算法

這個的時間複雜度取決於程式迴圈的次數,由乘法原理得迴圈了n*(m-1)次~複雜度即為所求~

不懂可問,望採納!

4樓:

該for迴圈,一重時時間複雜度為o(n),二重時為o(n^2)

氣泡排序中,兩重迴圈是 for (i=0;i

5樓:喧世幽人

for(i = 0; i < n -1; i++)          // 比較copy輪數

for(j = n - 1; j > i; j--)     // 元素下標

if(a[j] < a[j -1])         // 比較大小

swap(a[j], a[j -1]);   // 交換位置

從最後一個元素開始和前一個元素比較(注意j的取值),如果比前一個小,則交換位置。每輪比較都保證前面的元素是有序的,即把小的元素冒泡到最前面,只需要n-1輪(i的取值)即可完成。

6樓:匿名使用者

怎麼不對

你對幾個元素排序的

c語言中:for(i=0;i<3;i++) for(j=0;j<3;j++)是什麼意思 30

7樓:四舍**入

是一個雙重迴圈。

其中for(j=0;j<3;j++)是for(i=0;i<3;i++)的內嵌迴圈。

先迴圈第一個fori=1j=1,2,3i=2j=1,2,3i=3j=1,2,3一共3*3執行9次。

for遍歷0到9之間的數字,for迴圈由迴圈體及迴圈的終止條件兩部分組成。

8樓:會飛的小兔子

c語言中:for(i=0;

i<3;i++)for(j=0;j<3;j++)是一個雙重迴圈。

for(i=0;i<3;i++)

其中for(j=0;j<3;j++)是for(i=0;i<3;i++)的內嵌迴圈

先迴圈第一個fori=1j=1,2,3i=2j=1,2,3i=3j=1,2,3一共3*3執行9次、

for遍歷0到9之間的數字

for(;i<10;i++)

printf("\n");

//此時i的值是10

printf("i=%d\n",i);

擴充套件資料for迴圈體外定義變數

#include

intmain()

printf("\n");

printf("i=%d\n",i);

intj=0;

for(;j<10;)

printf("\n");

printf("j=%d\n",j);

return0;}

9樓:

這是一個雙重迴圈。

for(i=0;i<3;i++)

其中for(j=0;j<3;j++)是for(i=0;i<3;i++)的內嵌迴圈;

先迴圈第一個for i=1 j=1,2,3 i=2 j=1,2,3 i=3 j=1,2,3一共3*3執行9次。

for迴圈由迴圈體及迴圈的終止條件兩部分組成,for迴圈其在各種程式語言中的實現與表達有所出入,但基本為以c語言和pascal語言代表的兩種形式。

擴充套件資料

for迴圈中的變數可以是一個也可以是多個,不要侷限於一個變數處理到底,那樣有時會很單調,當程式適合把多個變數組成迴圈時,用多個for語句來表示就是有些浪費了。

for迴圈中語句可以為語句體,語句體外加大括號"{}"將參加迴圈的語句括起來。 for迴圈的三個表示式都是逗號表示式,這樣來說,其實每個分號表示式可以由幾個逗號表示式構成,中間用",」隔開,最後以「;」結束。

10樓:匿名使用者

迴圈從3開始,每次j減1,當j=0時,迴圈條件不滿足,因此只巡檢3次;

這種寫法很不好,不推薦使用。

11樓:

for(j=3;j;j--)

寫為for(j=3;j>0;j--) 這樣可以讓人更明白意思

意為從3開始迴圈,每次自減1,到0不滿足條件就跳出迴圈了

12樓:孤獨一客人

這是一個雙重迴圈

格式for(i=0;i<3;i++)

13樓:匿名使用者

這是一個雙重迴圈,通常我們會在迴圈中加個大括號

for(i=0;i<3;i++)

其中i從0到2,i取一個值,j就從0取到2,共迴圈9次

求c語言中for(i=0;i

14樓:

兩個迴圈的次數是一樣多的,都是n-(j+1)次,但在迴圈過程中i的值不一樣

前者是0,1,2 …… n-(j+1)-1後者是j+1,j+2,j+3……n-1

一道資料結構的題目跪求大神解題 畫出下面二叉樹的中序線索二

中序線索二叉樹 先根,在左子樹,然後右子樹。左線索指向前一個結點,左線索指向後一個結點。中序遍歷 abcdefghi.化成為森林,這個看一下書 給定如圖所示二叉樹t,請畫出與其對應的中序線索二叉樹。15 根據中順遍歷方法 先範訪問左子樹 結點 右子樹 中序遍歷 55 40 25 60 28 08 3...

高數一道導數的題目,有圖有答案求過程

x 0,cosx 1啊,cosx的平方就是1撒 lim x 0 tanx sinx x 3 0 0 分子分母分別求導 lim x 0 secx 2 cosx 3x 2 lim x 0 1 cosx 3 3x 2 cosx 2 lim x 0 1 cosx 3 3x 2 0 0 分子分母分別求導 li...

我有一道英文的C程式題目不懂,能否幫忙解答一下,感激不盡

題幹翻譯 學習下面的流程圖,並以此為基礎編寫 在控制檯程式中編寫一個適當的程式,且包含全部必要的條件。一個人要去一個工廠,他可以從johannesburg 地名 約翰內斯堡 和durban 地名 德班 中選擇。也就是說 他可以選擇從不同的地方到達那個工廠。這個人必須提供他的選擇,下面的流程圖給你一個...