#include <stdio.h>

// 选择排序函数
void selectionSort(int arr[], int length) {
    // 遍历整个数组
    for (int i = 0; i < length - 1; i++) {
        // 假设当前索引 i 是未排序部分的最小值的索引
        int minIndex = i;
        // 从未排序的部分找到最小值
        for (int j = i + 1; j < length; j++) {
            if (arr[j] < arr[minIndex]) {
                minIndex = j;  // 更新最小值的索引
            }
        }
        // 如果最小值的索引不是当前索引 i，交换它们
        if (minIndex != i) {
            int temp = arr[i];
            arr[i] = arr[minIndex];
            arr[minIndex] = temp;
        }
    }
}

// 测试选择排序
int main() {
    int arr[] = {64, 25, 12, 22, 11};
    int length = sizeof(arr) / sizeof(arr[0]);  // 获取数组长度

    printf("排序前：");
    for (int i = 0; i < length; i++) {  // 使用传统的for循环遍历数组
        printf("%d ", arr[i]);
    }

    selectionSort(arr, length);  // 调用选择排序

    printf("\n排序后：");
    for (int i = 0; i < length; i++) {  // 使用传统的for循环遍历数组
        printf("%d ", arr[i]);
    }

    return 0;
}
