#include using namespace std;

int main() { int n; cin >> n;

int* a = new int[n];
for (int i = 0; i < n; i++) {
    cin >> a[i];
}

int count = 0;
for (int i = 0; i < n - 1; i++) {
    int minIndex = i;
    for (int j = i + 1; j < n; j++) {
        if (a[j] < a[minIndex]) {
            minIndex = j;
        }
    }
    if (minIndex != i) {
        swap(a[i], a[minIndex]);
        count++;
    }
}

cout << count << endl;

delete[] a;
return 0;
C++且不使用vector头文件完成:给定一个数列a这个数列满足ai≠aji≠j现在要求你把这个数列从小到大排序每次允许你交换其中任意一对数请问最少需要几次交换?输入描述第一行是一个整数代表数字个数n。第二行有n个整数用空格分隔开表示数列a。输出描述只有一行包含一个数表示最少的交换次数。用例输入 1 88 23 4 16 77 -5 53 100用例输出 1 5

原文地址: http://www.cveoy.top/t/topic/h1Zi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录