简单选择排序 思想:假如当前数字下标为i,那么从i后面的n-i个数字中选择最小值,如果该最小值比当前数字小,那么二者交换。 特点:比较次数多,交换次数少,只有找到最小值时才交换 算法复杂度: O ( n 2 ) O({n^2}) O(n2),性能上略优于冒泡排序 import java.util.Arrays; public class test { public static void SelectSort(int[] nums) { for (int i = 0; i < nums.length; i++) { //设定当前数字为最小值 int min = i; //找到当前序列(当前数字i和后面n-i个数字,共计(n-i+1))的最小值,记录索引 for (int j = i+1; j < nums.length; j++) { if (nums[j] < nums[min]) { min = j; } } //不相等,说明i后面的数字存在最小值,进行交换 if(i != min) { int temp = nums[min]; nums[min] = nums[i]; nums[i] = temp; } } } public static void main(String[] args) { int [] nums = {9, 1, 5, 8, 3, 7, 4, 6, 2}; SelectSort(nums); System.out.println(Arrays.toString(nums)); } }