/*
Selection Sort
Writed by Zoro
Date: 2019/11/7
function:选择排序
3 7 4 2 6 1
3 1 4 2 6 7
3 1 4 2 6 7
3 1 2 4 6 7
1 2 3 4 6 7
*/
#include <stdio.h>
int findMaxPos(int arr[], int n) {
int max = arr[0];
int pos = 0;
int i;
for (i = 0; i < n; i++) {
if (arr[i] > max) {
max = arr[i];
pos = i;
}
}
return pos;
}
void selectionSort(int arr[], int n) {
while (n > 1) {
int pos = findMaxPos(arr, n);
int tmp = arr[pos];
arr[pos] = arr[n-1];
arr[n-1] = tmp;
n--;
}
}
int main() {
int arr[] = {5, 8, 9, 7, 6, 1, 2, 4, 3};
selectionSort(arr, 9);
int i;
for (i = 0; i < 9; i++) {
printf("%d\n", arr[i]);
}
return 0;
}