思想
从左向右遍历数组,让每个数组元素依次作为基准,将基准数组扫描一次,若有元素比基准小则标记这个元素,若后续元素存在比此元素更小的,则标记更小的元素,遍历完此次数组之后,交换基准和标记数组的内容,循环数组长度-1次即可排好序。
代码
public class Test1 { public static void main(String[] args) { int[] arr ={12,54,1,23,45,13,45,11,54,321,465,1321,564,123,498,4564,798, 1123}; selectionSort(arr); for (int i=0;i<arr.length;i++){ System.out.println(arr[i]); } } public static void selectionSort(int[] arr) { int len = arr.length; for (int i = 0; i < len - 1; i++) { int minVal = i; for (int j = i + 1; j < len; j++) { if (arr[minVal] > arr[j]) { minVal = j; } } if (minVal != i) { int tmp = arr[i]; arr[i] = arr[minVal]; arr[minVal] = tmp; } } } }