https://www.toutiao.com/a6593273307280179715/?iid=6593273307280179715
算法描述
比较相邻的元素,如果前一个比后一个大,交换之。
第一趟排序第1个和第2个一对,比较与交换,随后第2个和第3个一对比较交换,这样直到倒数第2个和最后1个,将最大的数移动到最后一位。
第二趟将第二大的数移动至倒数第二位
…
因此需要n-1趟;
图片描述:
package leetcode;public class demo18maopaopaixu {
public static void main(String[] args) {
int[] a = {
2, 1, 4, 3};for (int i = 0; i < a.length - 1; i++) {
//冒泡排序的思想是第一趟下来前后来回交替最后一位肯定是最大的如动态图。//所以要 a.length - i - 1,每次减去最后的排剩下的。for (int j = 0; j < a.length - i - 1; j++) {
//升序a[j] > a[j + 1] 降序a[j] < a[j + 1]if (a[j] > a[j + 1]) {
int temp = a[j + 1];a[j + 1] = a[j];a[j] = temp;}}}for (int as:a){
System.out.println(as);}}
}