【无标题】用algorithm库实现数组查找,排序(第一期)

​前言


众所周知,排序和查找的函数在书写上,永远有那么“一点长”。

手残党在不甚关注算法效率的情况下,可以直接使用头文件<algorithm>。


一、排序

algorithm进行升序排序的函数是sort(,)

sort内是待排序的区间,其计数器书写分两种情况:

1.若使用<array>头文件,array<int,n> name={},类型的定义方式,则书写为:

sort<a.begin(),a.end()>通过调用arr成员,表示对数组的“从头到尾”都进行排序操作。

2.若使用一般定义方式,a[n]={},则用地址进行排序区间的书写:

sort<a,a+n>表明从a[0]到a[n]进行排序。

如果你不是一个很关注底层的人,这书写简直不要太省事~

但是,有人又会问,如果想要降序排序,我们又将怎么做呢?
​当然有方法:对sort的结果使用另一函数——reverse(,)

reverse的书写与sort没有任何区别,但是将二者进行组合后,可以方便的实现降序排序。


二、查找

查找由三大函数:find(),count(),search()组成,我们各个击破。

1.find(,,key)

find的功能是从一个数组(其实vector和list用的更多,但这里按下不表)中找到一个关键字第一次出现的位置,并返回一个地址。

前两个参数与sort的两个参数意义相同。

可以通过这个地址与数组的最后一位地址+1比较(是否相等),判断数组内是否含有这个元素。

(这是因为find会遍历数组,直至找到key或移动出数组的存储空间位置)

2.search(,,,)

这个函数是改版的find,功能是比较两个数组,从而判断一个数组内是否连续含有另一个数组的全部元素,若找到,返回“子数组”的首地址,若找不到,则仅仅遍历整个数组,输出最后一位的地址。

前两个参数和后两个参数分别属于待查数组与key数组的遍历参数,意义与sort的参数相同。

关于他的应用,可以使用指针减法:

int *p=search();

cout<<search()-a.begin();

用这种方法可以输出子数组的位置。

3.count(,,key)

该函数的功能是在一个数组里查找某一关键字出现的总次数。

前两个参数的意义还是老样子,表示查找范围。

该函数返回的是一个整型变量。

 


小结

虽然使用算法库会让函数的功能与复杂度受限,但它的简便书写依然价值无穷。

the end

参考资料源:www.cplusplus.com


活动地址:CSDN21天学习挑战赛

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值