选择排序是一种简单直观的排序算法,其基本思路是在未排序的序列中找到最小(或最大)元素,然后将其存放到序列的起始位置。
void select_sort(int arr[], int sz) {
int i = 0;
for (i = 0; i < sz; i++) {
int min = i;
int j = 0;
for (j = i + 1; j < sz; j++) {
if (arr[j] < arr[min]) {
min = j;
}
}
int tmp = arr[i];
arr[i] = arr[min];
arr[min] = tmp;
print(arr);
}
}
void print(int arr[6]) {
int i = 0;
for (i = 0; i < 6; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main()
{
int arr[6] = { 12,11,16,13,78,95 };
int sz = sizeof(arr) / sizeof(arr[0]);
int i = 0;
/*for (i = 0; i < sz; i++) {
scanf("%d", &arr[i]);
}*/
select_sort(arr, sz);
for (int j = 0; j < sz; j++) {
printf("%d ", arr[j]);
}
return 0;
}
排序过程: