package selectionSort; public class SelectionSortImpl { /* * 每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法 */ public static int[] selectionSort(int[] arr) { int len = arr.length; int temp = Integer.MAX_VALUE; int idx = -1; for (int j = 0; j < len; j++) { for (int i = j; i < len; i++) { if (i == j) { temp = arr[i]; idx = i; } else if (arr[i] < temp) { temp = arr[i]; idx = i; } } /* * every time put the smallest element in the sorted order list via * exchanging the the first unsorted element with the mark smallest * element */ if (idx != j) { arr[idx] = arr[j]; arr[j] = temp; } } return arr; } } package selectionSort; import java.util.Arrays; public class TestSelectionSort { public static void main(String[] args) { int[] arr = new int[] { 9, 8, 7, 6, 5, 4, 2, 1 }; System.out.println("The unsorted array is : " + Arrays.toString(arr)); System.out.println("The sorted array with bubble sort algorithm is : " + Arrays.toString(SelectionSortImpl.selectionSort(arr))); } } /*运行结果 The unsorted array is : [9, 8, 7, 6, 5, 4, 2, 1] The sorted array with selection sort algorithm is : [1, 2, 4, 5, 6, 7, 8, 9] */