基础算法:选择排序

发现前面一篇有误,自己写了2个选择排序

//选择排序 对n个数进行排序
void sort1(int n,int a[]) 
{
int i,j,k,t;
for(i=n-1;i>0;i--)   //方案1 把最大的先放到底下去 
{
	k=i;
	for(j=0;j<n-1;j++)
	{
		if(a[j]>a[k]) k=j;
	}
	//a[k]与a[i]交换
	t=a[k];a[k]=a[i];a[i]=t; 
	
 }
 //test 
for(i=0;i<n;i++)
{
	printf("%d\n",a[i]);
}
}
 
 
void sort2(int n,int a[])
 {
 int i,j,k,t;
 for(i=0;i<n-1;i++) //方案2 把最小的放上面 
 {
 	k=i;
 	for(j=i+1;j<n;j++)
 	{
 		if(a[j]<a[k]) k=j;
	}
	t=a[k];a[k]=a[i];a[i]=t; 
	 
 }
  
   //test 
for(i=0;i<n;i++)
{
	printf("%d\n",a[i]);
}
}
发布了46 篇原创文章 · 获赞 13 · 访问量 3697

猜你喜欢

转载自blog.csdn.net/qq_39679772/article/details/103598054