选择排序法的核心逻辑是,通过不断的寻找最大最小值,并且将其排列在第一位,第二位,·····第n位,完成对数值的排序。
int a[10];
int i = 0, k = 0, j = 0, n = 0;
for (i = 0; i < 10; i++)
{
a[i] = rand() % 100 + 1;
printf("%d ", a[i]);//让a[i]赋有随机值
}
putchar('\n');
for (i = 0; i < 10; i++)
{
j = i;// 让j初始化在i的位置
for (k = i + 1; k < 10; k++)
{
if (a[j] < a[k])// 因为j的下标,并且是等于i的,不断寻找最大值
{
j = k;
}
}
if (i != j)// 防止i与j相等的时候,异或交换会出现问题,如果用第三方变量交换便无需防止i与j相等的时候所遇见的情况
{
a[i] = a[i] ^ a[j];
a[j] = a[i] ^ a[j];
a[i] = a[i] ^ a[j];
}
printf("%d ", a[i]);//排序后的结果
}
getchar();
“`