二、选择排序:
原理:对整个数组查找,再到最小的和第一个交换,然后除下第一个,在查找,找到第二小,和第二个位置交换
int a[10] = {10,1,8,4,5,7,6,3,2,9};
1 10 8 4 5 7 6 3 2 9
1 2 8 4 5 7 6 3 10 9
1 2 3 4 5 7 6 8 10 9
1 2 3 4 5 7 6 8 10 9
1 2 3 4 5 7 6 8 10 9
1 2 3 4 5 6 7 8 10 9
1 2 3 4 5 6 7 8 10 9
1 2 3 4 5 6 7 8 10 9
程序如下:
#include <stdio.h>
void swap(int a[],int i,int j)//交换函数
{
int temp;
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
void print(int a[])//打印函数
{
int i;
for(i = 0 ;i < 10;i++)
{
printf("%d ",a[i]);
}
printf("\n");
}
void xuanzhe(int a[])//选择排序
{
int i,j;
int min;
for (i = 0; i < 10; ++i)
{
min = i;
for(j = i + 1; j < 10;j++)
{
if (a[j] < a[min])
{
min = j;
}
}
swap(a,min,i);
print(a);
}
printf("\n");
}
int main()
{
Int a[10] = {10,1,8,4,5,7,6,3,2,9};
xuanzhe(a);
print(a);
return 0;
}