#include <stdio.h>
void SelectionSort(int a[], int size);
int main(void)
{
int arr[] = {1, -3, 5, 0, 9 ,6, 4};
SelectionSort(arr, sizeof(arr)/sizeof(arr[0]));
unsigned int i;
for (i=0; i<sizeof(arr)/sizeof(arr[0]); i++){
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
void SelectionSort(int a[], int size)
{
int i, j;
// 每次循環(huán)后將第 i 小的元素放好
for (i=0; i<size-1; i++){
int min_idx = i;
// 用來(lái)記錄從第 i 個(gè)到第 size-1 個(gè)元素中,最小的那個(gè)元素的下標(biāo)
for (j=i+1; j<size; j++){
if (a[j] < a[min_idx]){
min_idx = j;
}
}
// 將第 i 小的元素放在第 i 個(gè)位置上,并將原來(lái)占著第 i 個(gè)位置的元素挪到后面
int tmp = a[i];
a[i] = a[min_idx];
a[min_idx] = tmp;
}
}
排序后結(jié)果:

排序后結(jié)果