数组的交换排序

上几章节我们学了各种排序,今天,我们还是学排序:交换排序

交换排序,首先以第一位置上的数为先,将第一位置上的数与第二位置上的数进行比较,进行交换将小的数放在第一位置上,再将第一位置上的数与第三位置上的数进行比较,进行交换,将小的数放在第一位置上,如此反复,直到比完;然后以第二位置为先,将第二位置上的数与第三位置上的数进行比较,将小的数放在第二位位置上........最终从小到大就排好了顺序。

初始数组顺序【2        9        6        1        7        4】

首先, 将第一位置的2与第二位置的9比较,2小于9,不交换;再将第一位置的2与第三位置的6比较,不交换;2与1比较,交换;第一位置的1与第五位位置的7比较,不交换......

第一次排序后【1        9        6        2        7        4】

接下来,我们固定第一位置的数,不管它;将第二位置的9与第三位置的6比较,交换;将第二位置的6与第四位置的2比较,交换;将第二位置的2与第五位置的7比较,交换;......        

第二次排序后【1        2        9        6        7        4】

将第三位置的9与第四位置的6比较,交换;将第三位置的6与第五位置的7比较,不交换......

第三次排序后【1        2        4        9        7        6】

.....

第四次排序后【1        2        4        6        9        7】

......

第四次排序后【1        2        4        6        7        9】

如此下来,就会发现这组数都从小到大的顺序排列。

我直接甩出代码:

#include<stdio.h>
int main()
{
	int i,j,tem,n;
	int a[100005]={0};
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
	}
	for(i=0;i<n-1;i++)
	{
		for(j=i+1;j<n;j++)
		{
			if(a[i]>a[j])
			{
				tem=a[i];
				a[i]=a[j];
				a[j]=tem;
			}
			}	
	}	
	for(i=0;i<n;i++)
	printf("%d",a[i]);
	return 0;
}

记得点赞,收藏,加关注哦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值