选择排序 发表于 2018-05-30 | 分类于 简单算法 介绍 开始在整个数组上,也就是0~N-1上,选出一个最小值,把它放在位置0上 然后在1~N-1上选出一个最小值,放到位置1上 依次进行,直到整个数组有序 n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果。 指标时间复杂度 O(n²)空间复杂度O(1) 代码12345678910111213141516171819202122232425262728293031323334353637public class SelectionSort { public static void selectionSort(int[] arr) { if (arr == null || arr.length < 2) { return; } //0~n-1找一个放在最前;1~n-1找一个最小放在次前;类推 for (int i = 0; i < arr.length - 1; i++) { int minIndex = i;//最小量 //起点后移 for (int j = i + 1; j < arr.length; j++) { minIndex = arr[j] < arr[minIndex] ? j : minIndex; } swap(arr, i, minIndex); } } private static void swap(int[] arr, int i, int j) { int tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp; } private static void printArray(int[] arr) { if (arr == null) { return; } for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } System.out.println(); } public static void main(String[] args) { int[] arr = new int[] {3,5,4,2,6,7,1,9,8}; selectionSort(arr); printArray(arr); }} 输出