传统冒泡排序。
import java.util.Arrays;
/**
* @author 新新
* @ClassName: BubbleSort
* @Description: 冒泡排序
* @date 2022年03月17日
*/
public class BubbleSort1 {
public static void sort(int array[]) {
for (int i = 0; i < array.length - 1; i++) {
for (int j = 0; j < array.length - i - 1; j++) {
int tmp = 0;
if (array[j] > array[j + 1]) {
tmp = array[j];
array[j] = array[j + 1];
array[j + 1] = tmp;
}
}
}
}
public static void main(String[] args) {
//int[] array = new int[]{2, 3, 4, 5, 9, 6, 7, 8, 1};
//int[] array = new int[]{3, 4, 9, 2, 1, 5, 6, 7, 8};
int[] array = new int[]{7, 2, 9, 1, 3, 8, 4, 5, 6};
sort(array);
System.out.println(Arrays.toString(array));
}
}
冒泡排序(有序区优化)。
用变量记录最后一次交换的位置。
用标识符标识出无序区与有序区界限位置,有序区内的元素不再参与比较。
import java.util.Arrays;
/**
* @author 新新
* @ClassName: BubbleSort
* @Description: 冒泡排序(有序区优化)。
* @date 2022年03月17日
*/
public class BubbleSort2 {
/**
* 有序区优化。
* 用变量记录最后一次交换的位置。
* 用标识符标识出无序区与有序区界限位置,有序区内的元素不再参与比较。
*
* @param array
*/
public static void sort(int array[]) {
//记录最后一次交换的位置。
int lastExchangeIndex = 0;
//无序数列的边界,每次比较只需要比到这里为止。