選擇排序的基本設計思想是:每一趟從待排序的記錄中選出關鍵字最小的記錄,按順序放在已排序的記錄序列,直到所有排完爲止。算法
算法步驟:ide
初始序列:spa
(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趟,排序完成。it
算法實現:table
public class SelectSort {class public static void sort(int [] arr) {im int k=0;sort 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] |