冒泡排序:
- 一种排序的方式,对要进行排序的数据中相邻的数据进行两两比较,将较大的数据放在后面,
- 依次对所有的数据进行操作,直至所有数据按要求完成排序.
package Javase;
import sun.security.util.ByteArrayTagOrder;
import java.util.Arrays;
public class Maopao {
public static void main(String[] args) {
int[] arr = {24, 69, 32, 17, 56, 99};
// //数组的打印
// String s = Arrays.toString(arr);
// System.out.println(s);
// 简写为下面的
System.out.println("排序前:" + Arrays.toString(arr));
// 分析
// 第一次比较
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;
}
}
// 第二次比较
for (int i = 0; i < arr.length - 2; i++) {
if (arr[i] > arr[i + 1]) {
// 交换位置
int temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
// 第三次比较
for (int i = 0; i < arr.length - 3; i++) {
if (arr[i] > arr[i + 1]) {
// 交换位置
int temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
// 通过上面的三次比较,我们发现规律
// length后面的数字在不断的增大。
// 所以我们可以使用循环嵌套,最终代码为:
for (int x = 0; x < arr.length - 1; x++) {
for (int i = 0; i < arr.length - 1 - x; 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));
// 以上就是“冒泡排序”的方法
// 在Java中有一个Arrays.sort方法可以帮我们自动实现”冒泡排序“排序
Arrays.sort(arr);
System.out.println("排序后:" + Arrays.toString(arr));
}
}
运行结果
排序前:[24, 69, 32, 17, 56, 99]
排序后:[17, 24, 32, 56, 69, 99]
排序后:[17, 24, 32, 56, 69, 99]