博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ algorithm 里的sort函数应用
阅读量:4462 次
发布时间:2019-06-08

本文共 1141 字,大约阅读时间需要 3 分钟。

MSDN中的定义:

template<class RanIt>    void sort(RanIt first, RanIt last); //--> 1)template<class RanIt, class Pred>    void sort(RanIt first, RanIt last, Pred pr); //--> 2)
头文件:
#include <algorithm>
using namespace std;
1.默认的sort函数是按升序排。对应于1)
sort(a,a+n);   //两个参数分别为待排序数组的首地址和尾地址
2.可以自己写一个cmp函数,按特定意图进行排序。对应于2)
例如:

int cmp( const int &a, const int &b ){	if( a > b )		return 1;	else		return 0;}sort(a,a+n,cmp);

 是对数组a降序排序

又如:

int cmp( const POINT &a, const POINT &b ){	if( a.x < b.x )		return 1;	else		if( a.x == b.x ){			if( a.y < b.y )				return 1;			else				return 0;		}		else			return 0;}sort(a,a+n,cmp);

 是先按x升序排序,若x值相等则按y升序排

与此类似的还有C中的qsort,以下同附上qsort的使用方法:

#include <stdlib.h>

格式:

qsort(array_name,data_number,sizeof(data_type),compare_function_name)      

 (void*)bsearch (pointer_to_key_word,array_name,find_number,                       
 sizeof(data_type),compare_function_name)                       
 e.g.

int Cmp(const void*a,const void *b){	int*pa=(int*)a,*pb=(int*)b;	if(*pa>*pb) return 1;	else if (*pa==*pb)    return 0;	else   return -1;}qsort(data,N,sizeof(int),Cmp);        // 对int型数组进行快速排序(非降序排列)p=(int*)bsearch(&a,data,n,sizeof(int),Cmp);

 

 

转载于:https://www.cnblogs.com/aljxy/p/3236748.html

你可能感兴趣的文章
强烈推荐美文之《从此刻起,我要》
查看>>
敏捷开发流程
查看>>
leetcode 412. Fizz Buzz
查看>>
对Netflix Ribbon的Loadbalancer类源码设计合理性的一点质疑
查看>>
关于日历的算法
查看>>
[QT编程]QT实现的一个渐隐渐显窗体
查看>>
在Web工程中引入Jquery插件报错解决方案
查看>>
大学总结之影响我最深的十本书
查看>>
用myEclipse连接数据源生成动态数据报表
查看>>
[myeclipse]@override报错问题
查看>>
자주 쓰이는 정규표현식
查看>>
超简单的listview单选模式SingleMode(自定义listview item)
查看>>
vue-11-路由嵌套-参数传递-路由高亮
查看>>
HDU 1199 - Color the Ball 离散化
查看>>
[SCOI2005]骑士精神
查看>>
Hibernate原理解析-Hibernate中实体的状态
查看>>
六时车主 App 隐私政策
查看>>
C语言常见问题 如何用Visual Studio编写C语言程序测试
查看>>
Web用户的身份验证及WebApi权限验证流程的设计和实现
查看>>
hdu 2098 分拆素数和
查看>>