-
因為 for 迴圈中只有乙個語句,所以請仔細檢視。
for(i=;i>=1;i--)
for(j=0;ja[j+1]){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
第乙個 for 是乙個整體,即另乙個 for,另乙個 for 等價於乙個語句,第二個 for 是 if,面 if 子句用一對 {} 括起來,所以第二個 for 也等價於乙個整體。 它的作用與括號相同。
-
否則,氣泡排序需要在陣列元素之間進行比較,在迴圈中迴圈訪問一次資料。 第乙個 for 迴圈一次,第二個 for 迴圈一次,這樣陣列中的每個元素都可以比較一次。
-
程式中有四個for迴圈,分別控制第乙個和最後乙個,分別控制要排序的輸入資料和陣列中要排序和輸出的資料。 中間的兩個for迴圈是氣泡排序演算法的核心,它們是巢狀關係,即外迴圈先進入,外層是控制幾個排序,每次行程確定第i個最大值,內迴圈是每次行程多少次對相鄰資料進行對比較, 並根據排序要求進行資料交換,並安排每次行程中要找到的最大或最小 i 值的相應位置。這個過程就像水泡從小到大,所以叫做冒泡分揀。
確定for迴圈是巢狀的,即外部for迴圈執行的迴圈語句體中也包含for迴圈語句。
-
當 i=0 第一次時,迴圈的第二層依次比較 j 和 j+1 的大小,這個迴圈會把整個陣列的最小值交換到最後乙個位置(假設順序是從大到小),當 i=1 時,迴圈會把整個陣列的第二個小數交換到結束位置(每個迴圈前面的資料會發生變化在一定程度上,大量將逐漸向前推進),依此類推。因此,比較第二層迴圈是沒有意義的,因此比較的次數減少了j”。
-
你的程式不是有乙個 if (a[j] >a[j + 1]) if j=,它就變成了 a[>a[,所以陣列越界了,明白嗎?
-
不要把自己包裹起來。
int a=;
for (int i = 0; i < i++)for (int j = 0; j < j++)int temp;
if (a[i] temp = a[j];
a[j] = a[i];
a[i] = temp;
-
氣泡排序的原理是:(公升序)。
依次比較兩個相鄰的數字,將較大的值放在後面,以便最後乙個數字成為陣列中的最大值。
迴圈執行此過程,直到所有資料都根據此規則進行排列。 至此,排序完成。
示例:3,2,5,7,1(公升序)。
1.3 對 2,交換,陣列:2、3、5、7、12
3 vs. 5,非交換,陣列:2、3、5、7、135 對 7,無交換,陣列:
2,3,5,7,14.7 vs. 1, swap , array: 2,3,5,1,7 第一次遍歷比較完成,最後乙個資料為最大值。
之後,只需比較 2、3、5、1,因為最後乙個已經是最大的了。
然後遵循此規則,然後迴圈瀏覽此規則。
**字樣:包括
int main()
int len = 5;陣列長度 5
外迴圈基於此演算法:控制項最多需要幾個迴圈才能完成 (i=0; ia[j+1])
這稱為氣泡排序。 當然,冒泡也有一些變化,比如新增標誌,如果乙個迴圈中沒有交換,則說明排序已經完成。 結束迴圈,從而加快速度。
-
for(i = 0; i < n -1;i++) 比較複製輪數。
for(j = n - 1; j > i;j--) 元素。
if(a[j] swap(a[j], a[j -1]);交換位置。
從最後乙個元素開始,將其與前乙個元素進行比較(注意 j 的值),如果它比前乙個元素小,則交換位置。 每一輪比對保證前面的元素是有序的,即小元素冒泡到前面,只需要n-1輪(i的值)就可以完成。
-
怎麼錯了。
對一些元素進行排序。
-
迴圈對賬單的執行分為以下五個步驟:
1)求解初始值表示式。
2)確定迴圈條件表示式,如果值為true(不是0),則在for語句的迴圈體內執行語句,然後執行步驟3;如果值為 false (0),則跳出迴圈並執行步驟 (5)。
3)求解更新表示式。
4) 跳回步驟 (2) 並重複。
5) 在迴圈結束時,在 for 迴圈之後執行語句。
-
你說的是for迴圈的巢狀,每次執行外部迴圈for子句時,內部迴圈for都會完全執行。 重複此操作,直到執行外部迴圈。
-
是的,你的理解沒有問題,第一次執行外部的for,然後執行內部的for,執行外部的for,執行內部的for,所以迴圈知道外層被執行。
-
如果你想知道如何執行它,你可以除錯它。
如果你想更直觀,你可以新增大括號。
-
for 語句以第乙個“; “最後,最好加上括號。
當然,是有區別的:第一句“不開心”是修飾“她”的名詞第二句 unhappily 是修飾動詞工作的副詞由此可以看出,工作的第一句話,就是他不開心的結果。