选择排序

/*
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;
}

posted @ 2019-11-07 23:28  电院院长  阅读(132)  评论(0编辑  收藏  举报