冒泡排序,其思想是将相邻的两个数进行比较,较大的那个数往后靠,这样子一趟对比下来,最大的那个数就会跑到最后面去,经过几轮就会完成排序,形状像冒泡一般。
步骤:
- 从第一个数开始,两两作比较,如果第一个数比第二个数大,就进行位置交换。
- 从第一对开始比较,直到最后一对。
- 重复以上操作,已经排过的数(每轮经过比较交换位置后到达最后面的数)无须在比较,直至无可比较时,则排序完成。
冒泡常用代码:
public static void bubbleSort(int[] arr){
//判断数组为空或者只有一个数的情况
if(arr == null || arr.length < 2){
return;
}
//每轮两两比较,产生的最大数为经过交换后的数组的最后一位
for(int end = arr.length-1;end>0;end--){
//从第一个数开始进行比较
for(int i=0;i<end,i++){
//如果前一个数比后一个数大,则交换位置
if(arr[i]>arr[i+1]){
swap(arr,i,i+1);
}
}
}
}
public static void swap(int[] arr,int i,int j){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}