冒泡排序(Java实现)
现有博客有很多讲解冒泡排序算法的,可自行查阅这边就直接上代码了。
package com.lhg.sort;
import java.util.Arrays;
/**
* 冒泡排序
*/
public class BubbleSort {
public static void main(String[] args) {
//准备一个数组
int[] arr = {9, 10, 8, 2, 3, 4, 5, 6, 7, 1};
bubbleSort2(arr);
System.out.println(Arrays.toString(arr));
}
public static void bubbleSort1(int[] arr) {
if (arr==null||arr.length==0) return;
//外层循环
for (int i = 0; i < arr.length - 1; i++) {
//内层循环
for (int j = arr.length - 2; j >= i; j--) {
if (arr[j] > arr[j + 1]) {
swap(arr, j, j + 1);
}
}
}
}
public static void bubbleSort2(int[] arr) {
if (arr==null||arr.length==0) return;
//中间变量
int temp;
//操作标志
boolean flag = true;
//外层循环
for (int i = 0; i < arr.length - 1 && flag; i++) {
//初始化标识
flag = false;
//内层循环
for (int j = arr.length - 2; j >= i; j--) {
if (arr[j] > arr[j + 1]) {
swap(arr, j, j + 1);
flag = true;
}
}
}
}
//交换函数
static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}