#C02L05P03. C02.L05.sort函数.理论讲解2.控制sort函数的排序法则

C02.L05.sort函数.理论讲解2.控制sort函数的排序法则

通过上面的例子,会产生疑问:要实现从大到小的排序怎么办?

这就如前文所说需要在sort()函数里的第三个参数里做文章了,告诉程序:我要从大到小排序!

需要加入一个比较函数 cmp(),此函数的实现过程是这样的

bool cmp(int a,int b) // a 代表前项, b 代表后项
{
    return a>b; //如果前项大于后项,返回true,否则返回false
}

这就是告诉程序要实现从大到小的排序的方法!

例二:输入10整数,从大到小输出。

#include<bits/stdc++.h>
using namespace std;
bool cmp(int a,int b)
{
	return a>b;
}
int a[10];
int main()
{
	for(int i=0;i<10;i++)
		cin>>a[i];

	sort(a,a+10,cmp);  //cmp是比较 a 数组前后两个元素的法则,当cmp函数返回 false,sort函数就会交换数组元素的前后项

	for(int i=0;i<10;i++)
		cout<<a[i]<<" ";

	cout<<endl;

	return 0;
}

运行结果:

img