## 数组之冒泡排序
1、算法思想
对比相邻的元素,如果满足条件就交换位置,把较小的值放在数组的前面,大的放在数组后面,这样较小的元素就像气泡一样
从底部上升到顶部。
2、算法实例
冒泡排序由双层循环实现,外层循环控制排序的轮数,一般为要排序的数组长度减1,因为最后一次循环只剩一下一个元素,不
需要再进行相邻元素比较,即可完成排序;内层循环则用于对比相邻两个元素的大小,来确定是否需要交换位置。对比的次数也随
着轮数的增加而减少,因为每一轮的冒泡会把最大的放在最后面。
数组有5个元素的排序过程如图所示:
3、程序实现
public class Bubblesort {
public static void main(String[] args) throws Exception {
//冒泡排序
int[] array = {15,4,31,23,7};
//创建冒泡排序的对象
Bubblesort sorter = new Bubblesort();
//调用排序方法将数组排序
sorter.sort(array);
}
/**
* 冒泡排序
* @param array 要排序的数组
*/
public void sort(int[] array){
for(int i = 1;i<array.length;i++){
//比较相邻两个元素,较大的数往后冒泡
for(int j = 0;j<array.length-i;j++){
if(array[j]>array[j+1]){
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
System.out.println("从小到大排序后的结果为:");
showArray(array);
}
/**
* 显示数组中的所有元素
*@param 要显示的数组
*/
public void showArray(int[] array){
for(int i:array){
System.out.print(" "+i);
}
System.out.println();
}
}