基本流程:
1.首先从含有n个元素的原始数组中找出值最小的元素,将其跟数组第一个位置的元素进行交换
2.从数组中n-1(不将第一个排好的元素算进来)个元素中选择最小的元素,将其跟数组第二个位置的元素进行交换
3.依次重复2步骤,直到最后两个数据完成交换,完成从小到大的排序。
//随机生成数组并进行选择排序
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#define max 100
int shuzu[max]={'\0'};
void insert_max(int time1)
{
srand(time(NULL));
for(int i=0;i<time1;i++)
{
shuzu[i]=((rand()*3)/1000);
}
printf("数组:");
for(int time3=0;time3<time1;time3++)
{
printf("%d ",shuzu[time3]);
}
printf("\n");
}
void xuanze(int *a,int time2)
{
int temp,k,b;
for(int i=0;i<time2-1;i++)
{
printf("第%d次排序:",i);
for(k=i,b=i+1;b<time2;b++)
{
if(a[b]<a[k])k=b;
}
if(i!=k){
temp=a[i];
a[i]=a[k];
a[k]=temp;
}
for(int time3=0;time3<time2 ;time3++)
{
printf("%d ",a[time3]);
}
printf("\n");
}
}
int main()
{
int gs;
printf("输入需要选择排序数据个数:");
scanf("%d",&gs);
insert_max(gs);
xuanze(shuzu,gs);
return 0;
}