简单选择排序的基本思想:通过n-i-1次比较,从n-i个关键字中选出最小的关键字.然后与第i个关键字进行交换.
核心代码:
public static void selectSort(int[] data){ int min = -1; // 用于最小值的小标 for(int i=0; i<data.length; i++){ min = i; // 每次假设当前数为最小数,记录其下标 for(int j=i+1; j<data.length; j++){ if(data[j] < data[min]){ min = j; } } if(min != i){ swap(data, min, i); } } } 完整代码:
package cn.ccnu.sort; public class Select { public static void selectSort(int[] data){ int min = -1; // 用于最小值的小标 for(int i=0; i<data.length; i++){ min = i; // 每次假设当前数为最小数,记录其下标 for(int j=i+1; j<data.length; j++){ if(data[j] <= data[min]){ min = j; } } if(min != i){ swap(data, min, i); } } } private static void swap(int[] data, int a, int b) { int temp = data[a]; data[a] = data[b]; data[b] = temp; } public static void main(String[] args) { int[] data = {10, 3, 12, 5, 4, 9, 5, 7, 6}; selectSort(data); for (int i : data) { System.out.print(i + " "); } } }