java中得氣泡排序
阿新 • • 發佈:2019-01-26
1.依次比較相鄰的兩個元素,使得前面的元素比後面元素小;
2.第一次迴圈開始比較第一個元素和第二個元素,如果順序(前面小與後面)不對則交換;然後比較第二個元素和第三個元素;以此類推直到倒數第二個和最後一個比較完成;迴圈結束最後一個數就是陣列中最大的數;
注:比較次數比元素個數少一次;比如三個元素只比較兩次
3.第二次迴圈開始比較第一個元素和第二個元素,如果順序(前面小與後面)不對則交換;以此類推直到倒數第三個和倒數第二個比較完成;迴圈結束倒數第二個數就是陣列中第二大的數;
注:比較次數比元素個數少兩次;
4.重複對越來越少的元素進行相同的比較排序;直到沒有任何一對數字可以比較;完成排序;
程式碼參考;
int nums[]={9,4,7,3,6,8,1};
for(int i=0;i<nums.length-1;i++){ //排序次數
for(int j=0;j<nums.length-1-i;j++){ //比較次數
if(nums[j]>nums[j+1]){
int b=nums[j];
nums[j]=nums[j+1];
nums[j+1]=b;
}
}
System.out.println("第"+(i+1)+"次排序結果:" );
for(int k=0;k<nums.length;k++){ //輸出
System.out.print(nums[k]);
}
System.out.println("");
}
結果:
第1次排序結果:
4736819
第2次排序結果:
4367189
第3次排序結果:
3461789
第4次排序結果:
3416789
第5次排序結果:
3146789
第6次排序結果:
1346789
(〜^㉨^)〜