冒泡排序(升序):
1,两个相邻的元素进行比较,大的数放在右边;数组中的元素两两比较完之后,数组中的最大的数的位置就是数组中的最后一个元素
2,每一轮比较都会找到当前数组中的最大值;下一轮需要比较的元素就不用包含已经找出来的元素;针对数组长度为n的数组,需要找n-1轮;
高亮标记的元素是下一轮实际上比较的元素,未高亮的元素已经是升序的
代码:
/**
* 内层的排序(升序)
*/
public void forInner() {
int arr[] = {9,3,4,5,2,1};
//通过两两比较找到数组中的最大值,放到最后
for (int i = 0; i < arr.length - 1; i++) {
if (arr[i] > arr[i + 1]) { //左边的元素大于右边的元素
//交换元素的位置
int temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
System.out.println(Arrays.toString(arr));
}
}
/**
* 冒泡排序(升序)
*/
public void maoPao() {
int arr[] = {9,3,4,5,2,1};
//通过两两比较找到数组中的最大值,放到最后
for (int j = 0; j < arr.length - 1; j++) { //控制找的轮数
//每一轮的冒泡比较
for (int i = 0; i < arr.length - 1 - j; i++) { //0,5 6
if (arr[i] > arr[i + 1]) { //左边的元素大于右边的元素
//交换元素的位置
int temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
}
System.out.println(Arrays.toString(arr));
}