排序算法之选择排序
选择排序:在未排序的数列中找到最大或最小的数放在已经排号顺序的数列末尾
代码:
#include<stdio.h>
void swap(int *x,int *y)
{
int tmp;
tmp = *x;
*x = *y;
*y = tmp;
}
void func1(int str[])
{
int x=0,y,flag;
for(x;x<9;x++)
{
flag=x; //将一个数组元素默认为已排好,记录他的位置
for(y=x+1;y<10;y++)
{
if(str[y]<str[flag]) //找到最小的数并记录他的下标
flag =y;
}
swap(&str[x],&str[flag]);
}
}
int main(void)
{
int str[10]={18,22,65,45,85,99,77,24,12,4};
printf("选择排序之前:");
for(int i=0;i<10;i++)
{
printf("%d\n",str[i]);
}
printf("\n");
func1(str); //选择排序函数
printf("选择排序之后:");
for(int j=0;j<10;j++)
{
printf("%d\n",str[j]);
}
printf("\n");
}
运行结果: