八大排序算法
选择排序算法
package com.test.algorithm;
import java.util.Arrays;
public class SelectSort {
public static void main(String[] args) {
int[] array = new int[]{5, 2, 8, 4, 22, 31, 0, 1, 9};
System.out.println("排序前:");
System.out.println(Arrays.toString(array));
System.out.println("----------------------------------");
System.out.println("排序中:");
selectSort(array);
System.out.println("----------------------------------");
System.out.println("排序后:");
System.out.println(Arrays.toString(array));
}
public static void selectSort(int[] array) {
for (int i = 0; i < array.length - 1; i++) {
for (int j = i; j < array.length; j++) {
if (array[i] > array[j]) {
swap(array, i, j);
}
}
}
}
public static void swap(int[] array, int left, int right) {
int temp = array[left];
array[left] = array[right];
array[right] = temp;
System.out.println(Arrays.toString(array));
}
}
运行结果
排序前:
[5, 2, 8, 4, 22, 31, 0, 1, 9]
----------------------------------
排序中:
[2, 5, 8, 4, 22, 31, 0, 1, 9]
[0, 5, 8, 4, 22, 31, 2, 1, 9]
[0, 4, 8, 5, 22, 31, 2, 1, 9]
[0, 2, 8, 5, 22, 31, 4, 1, 9]
[0, 1, 8, 5, 22, 31, 4, 2, 9]
[0, 1, 5, 8, 22, 31, 4, 2, 9]
[0, 1, 4, 8, 22, 31, 5, 2, 9]
[0, 1, 2, 8, 22, 31, 5, 4, 9]
[0, 1, 2, 5, 22, 31, 8, 4, 9]
[0, 1, 2, 4, 22, 31, 8, 5, 9]
[0, 1, 2, 4, 8, 31, 22, 5, 9]
[0, 1, 2, 4, 5, 31, 22, 8, 9]
[0, 1, 2, 4, 5, 22, 31, 8, 9]
[0, 1, 2, 4, 5, 8, 31, 22, 9]
[0, 1, 2, 4, 5, 8, 22, 31, 9]
[0, 1, 2, 4, 5, 8, 9, 31, 22]
[0, 1, 2, 4, 5, 8, 9, 22, 31]
----------------------------------
排序后:
[0, 1, 2, 4, 5, 8, 9, 22, 31]