sort函数的使用

#include <iostream>
#include <algorithm>
#include <time.h>
using namespace std;

typedef struct index
{
	int a;
	int b;
}index;

bool cmp(index a , index b)
{
	if (a.a > b.a )
	{
		return true;
	}
	else
		if ( a.a == b.a  )
		{
			if (a.b > b.b )
			{
				return true ;
			}
		}
	return false ;
}

int main()
{
	index c[100];
	srand( time(0) );
	int i;
	for (i = 0 ; i < 100 ; ++i )
	{
		c[i].a = rand()%10 ;
		c[i].b = rand()%10 ;
	}

	sort( c , c+100 , cmp );


	for (i = 0 ; i < 100 ; ++i )
	{
		cout<<c[i].a <<"   "<<c[i].b <<endl;
	}
	return 0;
}

sort函数介

1.包含在头文件algorithm中,使用的话记得打上 #include <algorithm>

2.函数原型:template <class RandomAccessIterator, class StrictWeakOrdering>

                     void sort(RandomAccessIterator first, RandomAccessIterator last, StrictWeakOrdering comp);

                     前两个参数指定了排序的序列,对first到last(不包括last)的元素进行排序,第三个参数指定了如何

                     判断一个元素是否在另一个元素之前如果不写第三个参数,默认为从小到大排序。(有个小技巧,如

                     果懒得重写cmp函数,也可以通过逆序输出实现从大到小排序)

3.sort与qsort的区别:

                     sort是一个改进版的qsort,sort函数优于qsort的一些特点:

                     1.对大数组采取9项取样,更完全的三路划分算法,更细致的对不同数组大小采用不同方法排序。

                     2.Sort中的cmp函数参数可以直接是参与比较的引用类型。

                     3.cmp函数比较时qsort用“-”,而sort用”>”.这也是一个重要的区别。

                     4.sort函数是c++中标准模板库的的函数,在qsort()上已经进行了优化,根据情况的不同可以采用不同

                     的算法,所以较快。在同样的元素较多和同样的比较条件下 ,sort()的执行速度都比qsort()要快。

                     5.sort()是类属函数,可以用于比较任何容器,任何元素,任何条件。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值