關於氣泡排序的小問題散分了

2023-01-25 12:50:26 字數 1083 閱讀 6529

1樓:瓊頭浪子

第一個for表示總共要做幾趟的排序,比如a.length=8,則必須做7趟才能完成排序;

第二個for表示每一趟排序需要交換的次數;比如第一趟,你就得交換7次;

第二趟就只需6次;以此類推。。。

你的第二個for中不知有沒有寫錯哈,是不是應該是for(int j=0;j

至於temp ,它也就是一個普通的整型變數,用來協助相鄰兩個陣列元素進行交換用的;好比說,把a[j],a[j+1],temp,比成一摸一樣的杯子,現在a[j]裡裝著汽水,a[j+1]裡裝著酒,那現在要把酒倒到a[j]裡,把汽水倒到a[j+1]裡,

我們當然就需要藉助第三個杯子temp,才能順利的把兩種飲料交換啦。。。temp在程式中就是起到類似的作用啊。。

不知道這麼說清楚不?

2樓:匿名使用者

氣泡排序:

外層迴圈表示遍歷陣列,每遍歷一次都會把資料中最大的數移動到最左邊,每次遍歷後剩餘陣列-1,因為被移到左邊的數是從大到小的有序數列,不用在排序了。

內層迴圈表示比較整個陣列中每兩個相鄰數的大小,較小的數會被存放到較大數的右邊。 temp就是為了實現這個功能而定義的。

如果a[j]

3樓:聖從靈

共迴圈a.length次,第一層for;

第二層for:從第一個數開始,比較啊a[j]和a[j+1],如果是<,就交換兩個數;所以這是從大到小排序。

temp是交換時候做臨時用的,先把a[j]放到temp,再讓a[j]=a[j+1],最後在把temp中存的賦給a[j+1]。

每層內迴圈就是從前往後相鄰的兩個數比較一遍,這樣就把最小的數放到最後了,所以每次比較會把剩下的數種最小的放到結尾,每次結尾都會往前移動一個數,a.length-1-i;共比較a.length-1次,因為此時a.

length-1已經排好了,剩下一個自然也好了。

關於借錢的小問題,關於借錢的小問題?

不太熟就直接拒絕,不然還會有下次,我已經從這種經歷過來了,借了你們的感情不會升溫,不借你們的關係也還是那樣,剛好還能斷了以後他的念想 有利益衝突?借了只有壞沒有一點好的。不是說一定要回報,而是救急不救窮。直接說不好意思,不方便借。值得注意的是,規避小人。不然這點小錢也可能出大問題。這樣的人應該不是很...

C語言小問題,關於,關於C語言的小問題?

a b max a max b 語法錯誤,該為 a b max a max b 另外注意 printf 最大值為 c n c 改正為printf 最大值為 d n c 已測試關於i 和 i的區別,如果沒有賦值的話,他們結果是沒區別的,關於他們的區別,我舉例說明 1 int i 0,a a i 這裡結...

關於C 的小問題,一個關於C 的小問題

1 cout 當定義了 carrots就輸出內容,沒定義carrots就編譯不通過。區別就是執行起來還是嘣一聲告訴你沒戲啊 2.用 轉義 cout hollo,word 3.程式模組?不知道你在說啥 4.區別就是前一個函式需要一個 double 型的引數,後一個不要5 就這一句不知道什麼意思 仔細學...