選擇排序法的複雜度為O(n^2),和氣泡排序法是一樣的
他的步驟是將要排序的數字分為未排序和已排序兩部份
接著在未排序找出最小值插入已排序的末端
以{123456,123,12,33,44,55}為例
未排序
123456 123 12 33 44 55
找到最小值12,並與第一筆123456交換(12是已排序的數字了)
[12] 123 123456 33 44 55
找到最小值33,並與第一筆123交換
[12 33] 123456 123 44 55
找到最小值44,並與第一筆123456交換
[12 33 44] 123 123456 55
找到最小值55,並與第一筆123交換
[12 33 44 55] 123456 123
找到最小值123,並與第一筆123456交換
[12 33 44 55 123] 123456
完成
[12 33 44 55 123 123456]
Java
public class test{ static int [] num = {123456,123,12,33,44,55}; public static void main(String [] argv){ selection_sort(); for(int i : num){ System.out.print(i + " "); } } //選擇排序法 public static void selection_sort(){ for(int i = 0; i < num.length - 1; i++) { int m = i; //找出最小值 for(int j = i + 1; j < num.length; j++){ if(num[j] < num[m]) m = j; } //與最前面一筆(未排序)的交換 if(i != m){ int temp = num[i]; num[i] = num[m]; num[m] = temp; } } } }