Chinaunix首页 | 论坛 | 博客
  • 博客访问: 21084
  • 博文数量: 12
  • 博客积分: 288
  • 博客等级: 二等列兵
  • 技术积分: 135
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-04 18:52
文章分类

全部博文(12)

文章存档

2012年(12)

我的朋友

分类: C/C++

2012-09-18 21:19:22

sort 函数,可以直接对数组排序,复杂度为 n*log2(n)

使用这个函数,需要包含头文件#include    using namespace std;

这个函数可以传两个参数或三个参数。第一个参数是要排序的区间首地址,第二个参数是区间尾地址的下一地址。也就是说,排序的区间是 [a,b) 。简单来说,有一个数组 int a[100] ,要对从 a[0] a[99] 的元素进行排序,只要写 sort(a,a+100) 就行了,默认的排序方式是升序。

需要对数组
t 的第 0 len-1 的元素排序,就写 sort(t,t+len);

排序的数据类型不局限于整数,只要是定义了小于运算的类型都可以,比如字符串类 string

如果是没有定义小于运算的数据类型,或者想改变排序的顺序,就要用到第三参数——比较函数。比较函数是一个自己定义的函数,返回值是 bool 型,它规定了什么样的关系才是小于。想把刚才的整数数组按降序排列,可以先定义一个比较函数 cmp

bool cmp(int a,int b)

{

return a>b;

}

近期题目:(POJ)
最小生成树
1251 ,1258,1287,1751 ,2031,2349,(2394) ,2395,3723,(2253),3522,2485,2560,3625
宽度优先遍历
3626,1915,2243,1426,3087,3278,2251,2312
最短路

2394(Dij)

1847(Dij)

1502(Dij)

2502(Dij)

3653(Dij)

1062(Dij-枚举区间)

2781(SPFA)

3013(SPFA)

3159(SPFA)

3255(SPFA)

3268(SPFA)

3377(SPFA)

(1122)(F)

1125(F)

1603(F)

2240(F)

2496(F)

2607(F)

3660(F)

3615(F)

阅读(900) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~