原理分析
冒泡排序原理簡單來說就是依次將相鄰兩個數(shù)作比較,如果前一個數(shù)大于后一個數(shù)就交換位置临谱,這樣第一輪下來,就能保證最后一個數(shù)是所有數(shù)中最大的,這個數(shù)就不必參加下一輪的比較涌乳;然后第二輪過后,倒數(shù)第二個數(shù)就變成了第二大的甜癞,同樣也不參與下一輪的比較...以此類推夕晓,這樣每次把大數(shù)都放到后面,就像冒泡一樣
舉例說明
舉個例子悠咱,我們按冒泡排序原理比較這幾個數(shù):2,3,5,6,1
過程為
第1輪比較后:2 3 5 1 6
第2輪比較后:2 3 1 5 6
第3輪比較后:2 1 3 5 6
第4輪比較后:1 2 3 5 6
程序?qū)崿F(xiàn)
程序?qū)崿F(xiàn)也很簡單蒸辆,由上面舉例可得知,n個數(shù)排序析既,共需進行n-1輪排序躬贡,第i輪需要比較的次數(shù)為n-i次,這樣我們就可以用循環(huán)嵌套來實現(xiàn)眼坏,外層控制循環(huán)幾輪拂玻,內(nèi)層控制比較次數(shù),程序如下
for(int i=0;i<numbers.length-1;i++) {
for(int j=0;j<numbers.length-1-i;j++) { //-1為了防止溢出
if(numbers[j] > numbers[j+1]) {
int temp = numbers[j];
numbers[j] = numbers[j+1];
numbers[j+1] = temp;
}
}
}