选择排序思路:在每一轮中记录最小元素的下标,将它与序列首部元素交换。
:
#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;
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;
}