書上虛擬碼(看看就行你媽的):
public class Selection {
public static void sort(Compartable []a) {
int N=a.length;
for (int i=0;i<N;i++) {
int min=1;
for(int j=i+1;j<N;j++)
if (less(a[j],a[min])) min=j;
exch(a,i,min);
}
}
}
對面的靚仔看過來!!
初始陣列為{ 49,38,65,97,76,13,27,49 },進行選擇排序:
public class SelectSort {
public static void selectSort(int[] a) {
if (a == null || a.length <= 0) {
return;
}
for (int i = 0; i < a.length; i++) {
int temp = a[i];
int flag = i; // 將當前下標定義為最小值下標
for (int j = i + 1; j < a.length; j++) {
if (a[j] < temp) {// a[j] < temp 從小到大排序;a[j] > temp 從大到小排序
temp = a[j];
flag = j; // 如果有小於當前最小值的關鍵字將此關鍵字的下標賦值給flag
}
}
if (flag != i) {
a[flag] = a[i];
a[i] = temp;
}
}
}
public static void main(String[] args) {
int a[] = { 49,38,65,97,76,13,27,49 };
selectSort(a);
System.out.println(Arrays.toString(a));
}
}