不会写 下面有完整图 讲解

题目描述
农场里的马,在草场开心地吃着牧草,直到天色晚了,牧马的人会将马依次按号牌大小,依次放入相应的位置。但是这马总是打乱了顺序,于是牧马人都会想办法把这些马都排好:每次从最前面开始,然后与后面的号牌进行比较,每次将小的号牌的马换到前面。
这牧马人整理马的顺序相当耗费体力,每次交换,消耗体力为两匹马槽位的距离“2。
他想知道,他要花费多少体力才能完成任务。

img

#include <stdio.h>

int selection_sort(int arr[], int n) {
    int i, j, min_idx;
    int sum = 0;
    for (i = 0; i < n-1; i++) {
        min_idx = i;
        for (j = i+1; j < n; j++) {
            if (arr[j] < arr[min_idx]) {
                min_idx = j;
            }
        }
        if (min_idx != i) {
            sum += min_idx - i;
            int temp = arr[i];
            arr[i] = arr[min_idx];
            arr[min_idx] = temp;
        }
    }
    return sum;
}

int main() {
    int n, i;
    scanf("%d", &n);
    int arr[n];
    for (i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    int result = 2 * selection_sort(arr, n);
    printf("%d", result);
    return 0;
}