冒泡排序(Bubble Sort)是啥?
来源百度百科:
冒泡排序是一种简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。
白话理解
1.首先交换,可以将数组的最大值移动到最后面。(从小到大)
2.在依次交换,最大值移动到,倒数第二位。
3.最后交换,直到所有数值排列整齐。
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] arr = new int[] { 2, 6, 3, 7, 0, 9 }; //定义一个一维数组
bubbleSort(arr); //调用方法
}
public static void bubbleSort(int[] arr) {
for (int i = 1; i < arr.length; i++) { //每一轮循环
//它交换要比数组的最后一位小,-i就是当前的最后一位,-1才是最后一位的前一位。
for (int j = 0; j < arr.length - i - 1; j++) { //控制每一轮次数
if (arr[j] > arr[j + 1]) { //控制小到大输出,如果是<,那就是大到小输出。(划重点,要考!!!)
int temp; //给个替换
temp=arr[j+1]; //这三行是冒泡的固定替换,不明白就背过!!
arr[j+1]=arr[j]; //这三行是冒泡的固定替换,不明白就背过!!
arr[j]=temp; //这三行是冒泡的固定替换,不明白就背过!!
}
}
}
System.out.println(Arrays.toString(arr)); //输出数组
}
}
自述
其实之前一直没有明白冒泡的含义,也不明白举一反三,可能是见的多了,今天看到了
https://zhuanlan.zhihu.com/p/64659372
这位大佬的文章,突然顿悟了,然后紧接着自己敲出这些代码,中间遇到小问题。
就是-i-1,不夸张,牛一句话给我安排的明明白白,感谢我大哥南墙!!!
https://blog.csdn.net/a1439775520/article/details/96633611
Java实现选择排序和冒泡排序,这是我大哥的文章~~~
来源:CSDN
作者:高聪明
链接:https://blog.csdn.net/weixin_43771695/article/details/104220760