冒泡排序的原理:
- 从头开始遍历,比较两个相邻的元素,如果前一个元素比后元素大,就交换位置,然后继续和下一个元素比较,将最大的元素放在最后的位置。
- 每次遍历将这次遍历的最大元素放到最后的位置后,下次遍历就忽略这个已存放了最大元素的位置。(即每遍历一次,遍历长度就减少一次)
代码实现:
public static void main(String[] args) {
int arr[] = new int[25];
//排序前
System.out.println("排序前:");
for (int i = 0; i < arr.length; i++) {
arr[i] = new Random().nextInt(25);
System.out.print(arr[i]+"\t");
}
System.out.println();
//排序后
System.out.println("排序后:");
for (int i = 0; i <arr.length-1; i++) { //i决定有多少个元素参与冒泡
for (int j = 0; j < arr.length-i-1; j++) { //第一次放到数组的最后、第二次放到倒数第二个位置...
if (arr[j]>arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+"\t");
}
}
运行结果: