选择排序的基本设计思想是:每一趟从待排序的记录中选出关键字最小的记录,按顺序放在已排序的记录序列,直到全部排完为止。
算法步骤:
初始序列:
(1)、第一趟从arr[1]开始,通过n-1次比较,从n个记录中选出关键字最小的记录,记为arr[k],交换arr[1]与arr[k]的位置。
(2)、第二趟从arr[2]开始,通过n-2次比较,从n-1个记录中选出关键字最小的记录,交换arr[2]与arr[k]
(3)、类此类推,经过n-1趟,排序完成。
算法实现:
public class SelectSort { public static void sort(int [] arr) { int k=0; int temp=0; for(int i=0;i<arr.length-1;i++) { k=i; for(int j=i+1;j<arr.length;j++) { if(arr[k]>arr[j]) { k=j; } } if(k!=i) { //交换位置 temp=arr[i]; arr[i]=arr[k]; arr[k]=temp; } } } public static void main(String[] args) { int [] arr= {56,62,47,21,26,76,11,39,76,18,33}; System.out.println("排序前:"+Arrays.toString(arr)); sort(arr); System.out.println("排序后:"+Arrays.toString(arr)); } } |
排序前:[56, 62, 47, 21, 26, 76, 11, 39, 76, 18, 33] 排序后:[11, 18, 21, 26, 33, 39, 47, 56, 62, 76, 76] |