/*
选择排序算法 1.在数组中最小值和第一位交换位置
2.在n-1中的最小值和第二位交换位置
*/
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define SIZE 10
void SelectionSort(int *a,int len)
{
int i,j,k,h;
int temp;
for(i=0;i<len-1;i++)
{
k=i;
for(j=i+1;j<len;j++)
{
if(a[j]<a[k])
k=j;
}
if(k!=i)
{
temp=a[i];
a[i]=a[k];
a[k]=temp;
}
printf("第%d步排序结果:",i);
for(h=0;h<len;h++)
{
printf("%d ",a[h]);
}
printf("\n");
}
}
void main()
{
int i;
int array[SIZE];
srand(time(NULL));
for(i=0;i<SIZE;i++)
{
array[i]=rand()%90+11; //1-100
}
printf("排序前:\n");
for(i=0;i<SIZE;i++)
{
printf("%d ",array[i]);
}
printf("\n");
SelectionSort(array,SIZE);
printf("排序后:\n");
for(i=0;i<SIZE;i++)
{
printf("%d ",array[i]);
}
printf("\n");
}
选择排序(SelectionSort)
最新推荐文章于 2022-08-08 19:07:01 发布