选择排序
程序员文章站
2022-03-01 15:12:32
...
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char *argv[])
{
int arr[5] = { 5, 4, 3, 2, 1 };
int n = sizeof(arr) / sizeof(arr[0]);
//需要遍历的总轮数比数组元素少一
for (int i = 0; i < n - 1; i++)
{
int index = i;
//此处为j < n,因为j每次都要移动到数组的最后一个元素
//变化的是它的起始位置,而不是结束位置
for (int j = index + 1; j < n; j++)
{
if (arr[index] > arr[j])
{
index = j;
}
}
if (index != i)
{
int tmp = arr[index];
arr[index] = arr[i];
arr[i] = tmp;
}
}
for (int i = 0; i < n; i++)
{
printf("%d\n", arr[i]);
}
system("pause");
return 0;
}