选择排序

来源:互联网 发布:公文流转登记软件 编辑:程序博客网 时间:2024/06/05 20:10
void srot(int* buffer, int min, int max){    int j = min;    int i = max;    int k = j;    for (int j = 0; j < max; j++)//一次循环后,排除第一个数继续对剩下的数字进行排序。直到结束。    {        for (int i = j; i < max + 1; i++)//这个循环是为了找到当前数组的最小值。        {            if (buffer[i] < buffer[k])//比较i和k所对应的值进行比较。            {                k = i;//把比较小的值下标给k.            }        }        if (j != k)//此处交换值不能使用异或交换,当交换值相等时结果就为0.        {            buffer[j] = buffer[k] * buffer[j];            buffer[k] = buffer[j] / buffer[k];            buffer[j] = buffer[j] / buffer[k];        }//交换结束后j就得到最小值。    }}int main(){    int a[] = { 12, 58, 15, 64, 84, 17 ,9,1,51,3};    int n = sizeof(a) / sizeof(int);    srot(a,0,n-1);    for (int j = 0; j < n; j++)    {        printf("%d ",a[j]);    }    system("pause");    return 0;}

达到从小到大的排序模式,重点在于对选择排序的理解,

原创粉丝点击