經典演算法 氣泡排序法

2021-07-27 15:34:12 字數 584 閱讀 5723

public class bubbletest ;

bb bb = new bb();

bb.sort(arr);

for(int i=0;i

排序**如上面,在剛開始排序的時候還一時半會沒有做出來。有幾個問題:

1、為什麼要把 int  temp=0 定義在排序的最外面,放在內層行不行?還有別的地方可以定義嗎?

答:要想知道把temp定義在什麼地方,就必須理解temp的作用是什麼。temp在此處主要是作為arr[j+1] 和arr[j]交換的中轉站。在比較完 arr[j+1] 和arr[j] 之後,必然需要有temp進行暫存。因此只要在temp的作用域在 if(_) 的大括號內,就都可以。

2、外層迴圈,為什麼是i

答:外層迴圈主要是「決定」迴圈次數。每次迴圈,都將最大的數字放在末尾,而且末尾的數字沒有後面的其他數字與其比較了。

3、記憶體迴圈,為什麼是i

答:j=0,第1次,arr比較到最後乙個數前乙個數 arr.lenght—1;

j=1,第2次,arr比較到最後乙個數前2個數arr.lenght—1-1;

……所以i

經典排序演算法(一)冒泡法排序 C 實現

冒泡法排序是一種比較簡單的排序演算法,演算法複雜度為o n2 ps 最好最壞的情況下都是這樣 具體實現步驟為 1 指定最末元素為初始比較值,與向上相鄰的元素比較大小 2 如果小於相鄰元素,則交換順序,相反,順序不變 3 以步驟2中向上相鄰元素在與相鄰元素對比,然後重複步驟2 4 重複步驟2 3,直到...

經典演算法 氣泡排序

題目從小到大排序陣列 原理 小的數放左邊,大的數放右邊。for 迴圈 的巢狀迴圈。外層迴圈控制排序的趟數 for int i 0 i arr.length 1 i 趟數為需要排序的字元多少,沒進行一趟,則排出乙個最大值。內層迴圈控制每一趟排序的次數 for int j 0 j arr.length ...

經典排序演算法,氣泡排序

氣泡排序是本人在大一學習c語言的時候就已經學過了,最近這段時間想起來把比較經典的排序演算法拿來回顧一下,鞏固一下知識。氣泡排序的核心就是比較相鄰兩個數的大小,然後將小的 或者大的 放到前面去,經過一趟之後,就能把最小或者最大的放到最前面,第二趟排序的時候,第乙個數不參與排序,從第二個數開始,經過一趟...