冒泡排序
特点:每一轮排序是将相邻的两个元素比较大小,最终是一个从小到大或者从大到小的有序序列。
规律:1、轮次的规律:总共有n个元素,则需要比较n-1次
2、每一轮的比较规律:每一轮的比较规律比上一轮-1次
代码实现思想:至少需要两个变量参与编码,一个变量控制轮次,一个变量控制每一轮次中比较的次数。即至少两个for循环,外层for循环控制轮次,内层for循环控制当前轮次比较的次数。
举例:将数组中的元素从小到大排序 int[] arr = { 12, 22, 8, 49, 3 };
public class Test- [ ] {
public static void main(String[] args) {
int[] arr = {12, 8, 22, 3, 49};
int[] resArr = bubbleSort(arr);
printIntArray(resArr);
}
/*
将输出int类型的数组功能封装成一个方法
*/
public static void printIntArray(int[] array) {
for (int i = 0; i < array.length; i++) {
if (i == 0) {
System.out.print("[" + array[i] + ", ");
} else if (i == array.length - 1) {
System.out.print(array[i] + "]");
} else {
System.out.print(array[i] + ", ");
}
}
//换行
System.out.println();
}
/*
定义一个方法,进行冒泡排序
返回值类型:int[]
参数类型:int[]
*/
public static int[] bubbleSort(int[] arr) {
for (int i = 1; i < arr.length ; i++) {
for (int j = 0; j < arr.length - i; j++) {
if (arr[j] > arr[j + 1]) { 注意:若将数组从大到小排列,需要改变符号
//比较交换
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return arr;
}
}

浙公网安备 33010602011771号