C语言选择排序

//选择排序,前提必须了解找到数组中最小数和最大数的算法
# include<stdio.h>
# include<stdlib.h>
# include<time.h>
int main()
{
    //利用时间随机数生成数组
    time_t ts;
    unsigned int data = time(&ts);
    srand(data);
    int a[10];
    for (int i = 0; i < 10; i++)
    {
        a[i] = rand() % 100;
        printf("%d
", a[i]);
    }

    for (int i = 0; i < 9; i++)
    {
        int min = i; //假设把第一个数当作最小的数
        printf("
%d,%d,%d,%d", i, min, a[i], a[min]);//注意按列观察
        for (int j = i + 1; j < 10; j++)//定义变量j来遍历,注意遍历的开始是第二为开始的
        {
            if (a[j] < a[min])//如果有一个数比下标为min的数还小,就把小的数的下标给min
            {
                min = j;
            }
        }
        if (min != i)//如果min和之前的i不一样,那么就得交换了
        {
            int t = a[min];
            a[min] = a[i];
            a[i] = t;
        }
    }

    for (int i = 0; i < 10; i++)
    {
        printf("%d ", a[i]);
    }

    system("pause");
}
原文地址:https://www.cnblogs.com/sxmcACM/p/4127327.html