冒泡排序,sort排序

《1》冒泡排序

对于冒泡排序,重要的就是冒泡两字了。

那么,如何实现冒泡呢?
使用双重for循环就行!

重点就是如何控制for循环里买你的条件。

试想一下,如果对3个数进行排序,比如 2 5 1,是不是只需要比较两次就能排好顺序了。

2<5 5>1 两次比较后借用变量temp将两者交换,那么剩余那个数字是不是自动就拍好位置了。

而拍好前面的顺序后就不要再考虑了,因此从小的往后继续比较,然后交换。

 

所有代码如下:

#include<iostream>
using namespace std;
int main () {
	int a[100];
	int n;
	cin >> n;
	for (int i = 0; i < n; i++) {
		cin >> a[i];

	}
	for (int i = 0; i < n - 1; i++) {
		for (int j = 0; j < n - 1 - i; j++) {
			if(a[j]>a[j+1]){
				int temp=a[j];
				a[j]=a[j+1];
				a[j+1]=temp;
			}

		}
	}

	for(int i=0;i<n;i++){
		cout<<a[i]<<" ";
	}
	return 0;
}

《2》sort 函数进行排序

相比较于冒泡排序,sort函数就显得很简单粗暴。

sort函数能将数组内的元素自动进行排序。

#include<iostream>
#include<algorithm>
using namespace std;
int main () {
	int a[100];
	int n;
	cin >> n;
	for (int i = 0; i < n; i++) {
		cin >> a[i];
	}
	sort(a,a+n);
	for(int i=0;i<n;i++){
		cout<<a[i]<<" ";
		
	}
	return 0;
	
	
}

需要注意的是,sort(a,a+n)()内的左边的就是你想要进行排序的第一个元素,对应的,后面的就是最后一个(我是这样理解的,如果想了解详细的sort去搜一下)

另外,值得一说的是,sort函数是可以自定义的,什么意思呢?
就是现在上面的函数是按照从小到大来进行排序的,如果你想要得到从大到小,就需要设置一个bool变量改变你想要的顺序。

#include<iostream>
#include<algorithm>
using namespace std;
bool cmp(int a,int b){
	return a>b;
	
}
int main () {
	int a[100];
	int n;
	cin >> n;
	for (int i = 0; i < n; i++) {
		cin >> a[i];
	}
	sort(a,a+n,cmp);
	for(int i=0;i<n;i++){
		cout<<a[i]<<" ";
		
	}
	return 0;
	
	
}

这个就是从大到小来进行排序。

需要注意的是原本的sort(a,a+n);变成了sort(a,a+n,cmp);

还有就是,别忘了加头文件#include<algorithm> 不然会报错哦

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值