1.选择排序(Selection sort)
选择排序是简单直观的排序算法。
基本思想:从首元素开始,首元素与它后面的所有元素进行比较,找到数列中最小的元素,与首元素值交换。然后下一个元素与它后面的元素比较,得到第二小的元素,与之交换。
cs
void swap(int* x, int* y)
{
int temp;
if (*x > *y)
{
temp = *x;
*x = *y;
*y = temp;
}
}
void xuanzepx(int* a,int size )//选择排序
{
int i = 0, j = 0;
int temp;
for (i = 0; i < size-1; i++)//拿一个数与它后面的数作比较
{
for (j = i+1; j < size; j++)
{
if (a[i] > a[j])
{
swap(&a[i],&a[j]);
}
}
}
}
void main()
{
int str[] = {10,9,8,7,5,6,4,1,2,3};
int zf = sizeof(str) / sizeof(str[0]);//数组元素个数
xuanzepx(str,zf);
for (int i = 0; i < zf; i++)
{
printf("%3d", str[i]);
}
}
下标为0的元素与他后面的所有元素比较,找到数组中最小的元素值为止,下标为0的元素值与最小元素值进行交换。位置并没有交换。然后下标为1的元素与它后面的所有元素比较,找到最小的元素值为止(此时为第二小的元素值),下标为1的元素值与最小的元素值进行交换。位置并没有交换。接着下标为2为3为...
上面swap是自己写的交换值的函数,不是系统自带的。用的是指针。
指针是变量的首地址。当你把地址给指针变量后,指针就能访问并改变里面的内容。