直接选择排序的基本思想:N个记录的直接选择排序后可以经过N-1次直接排序后得到的结果
#include <stdio.h>
void SelectSort(int *a, int n)
{
int i, j;
int temp = 0;
int flag = 0;
{
int i, j;
int temp = 0;
int flag = 0;
for (i = 0; i < n - 1; i++) //N-1 次遍历
{
temp = a[i]; //每次遍历前temp和flag的初值设置
flag = i;
{
temp = a[i]; //每次遍历前temp和flag的初值设置
flag = i;
for (j = i + 1; j < n; j++) //遍历从i位置向数组尾部进行
{
if (a[j] < temp)
{
temp = a[j]; //temp保存每次遍历搜索到的最小值
flag = j; //flag记录最小值的位置
}
}
if (flag != i)
{
a[flag] = a[i];
a[i] = temp;
}
}
}
int main()
{
int i = 0;
int a[] = {5, 4, 3, 6, 1, 9, 7, 0, 2, 8};
{
int i = 0;
int a[] = {5, 4, 3, 6, 1, 9, 7, 0, 2, 8};
int length = sizeof(a) / sizeof(a[0]);
SelectSort(a, length);
for (i = 0; i < length; i++)
{
printf("%d ", a[i]);
}
printf("\n");
{
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
}