选择排序

字数 0阅读 3
//
// Created by heolis on 19-5-3.
//

#include <bits/stdc++.h>

using namespace std;

void selectSort(int A[], int n) {
    for (int i = 0; i < n; i++) {    // 进行n趟排序
        int min_k = i;
        for (int j = i; j < n; ++j) {   // 选出[i, n]中最小的元素,下标为k
            if (A[j] < A[min_k])
                min_k = j;
        }
        int temp = A[i];    // 交换
        A[i] = A[min_k];
        A[min_k] = temp;
    }
}

void print(int n) {
    printf("%d ", n);
}

int main() {
    int num[] = {-1, 12, 5, 9, 8, 40, 6, -8, 2, 1, 3};
    int length = sizeof(num) / sizeof(int);
    for_each(num, num + length, print);
    selectSort(num, length);
    printf("\n");
    for_each(num, num + length, print);
    
    return 0;
}

推荐阅读更多精彩内容