实现思路:每次循环选取满足条件的值后,将满足条件的值交换到指定位置
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void test01() {
int arr[] = { 2,5,1,3,4 };
for (size_t i = 0; i < 4; i++)
{
int min_index = i;//记录最小值的下标
for (size_t j = i+1; j < 5; j++)
{
//更新最小值的下标
if (arr[j] < arr[min_index]) {
min_index = j;
}
}
//将最小值移动到指定位置
if (i != min_index) {
int temp = arr[i];
arr[i] = arr[min_index];
arr[min_index] = temp;
}
}
for (size_t i = 0; i < 5; i++)
{
printf("%d ", arr[i]);
}
}
int main(void)
{
test01();
return 0;
}