C++sort函数的用法

C++sort函数的用法近来看了 c 标准库这本书 学到了很多 就把这其中的一点 C sort 函数的用法写下来和大家分享吧 一 为什么要用 c 标准库里的排序函数 Sort 函数是 c 一种排序方法之一 学会了这种方法也打消我学习 c 以来使用的冒泡排序和选择排序所带来的执行效率不高的问题 因为它使用的排序方法是类似于快排的方法 时间复杂度为 n log2 n 执行效率较高 二 c 标准库里的排序函


(一)为什么要用c++标准库里的排序函数

Sort()函数是c++一种排序方法之一,学会了这种方法也打消我学习c++以来使用的冒泡排序和选择排序所带来的执行效率不高的问题!因为它使用的排序方法是类似于快排的方法,时间复杂度为n*log2(n),执行效率较高!

(二)c++标准库里的排序函数的使用方法

ISort函数包含在头文件为#include

的c++
标准库中,调用标准库里的排序方法可以不必知道其内部是如何实现的,只要出现我们想要的结果即可!

IISort函数有三个参数:

(1)第一个是要排序的数组的起始地址。

(2)第二个是结束的地址(最后一位要排序的地址)

(3)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序。

Sort函数使用模板:

Sort(start,end,排序方法)

下面就具体使用sort()函数结合对数组里的十个数进行排序做一个说明!

例一:sort函数没有第三个参数,实现的是从小到大

#include 
   
     #include 
    
      using namespace std; int main() { int a[10]={9,6,3,8,5,2,7,4,1,0}; for(int i=0;i<10;i++) cout< 
      
     
   

例二

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

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

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

bool complare(int a,int b) { return a>b; } 

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

#include 
     
       #include 
      
        using namespace std; bool complare(int a,int b) { return a>b; } int main() { int a[10]={9,6,3,8,5,2,7,4,1,0}; for(int i=0;i<10;i++) cout< 
        
       
     

例三:

通过上面例一、二的方法虽然实现了从大到小和从大到小的排序,这样做还是有点麻烦,因为还需要自己编写告诉程序执行何种排序的原则的函数,c++标准库强大的功能完全可以解决这种麻烦。

Sortt函数的第三个参数可以用这样的语句告诉程序你所采用的排序原则

less<数据类型>()//从小到大排序

greater<数据类型>()//从大到小排序

结合本例子,这样的就可以完成你想要的任何一种排序原则了







#include 
   
     #include 
    
      using namespace std; int main() { int a[10]={9,6,3,8,5,2,7,4,1,0}; for(int i=0;i<10;i++) cout< 
     
       ()); for(int i=0;i<10;i++) cout< 
      
        #include 
       
         using namespace std; int main() { int a[10]={9,6,3,8,5,2,7,4,1,0}; for(int i=0;i<10;i++) cout< 
        
          ()); for(int i=0;i<10;i++) cout< 
          
         
        
       
      
     
   



例四:利用sort函数还可以实现对字符的排序,排序方法大同小异,下面就把程序范例展示一下

#include 
   
     #include 
    
      using namespace std; int main() { char a[11]="asdfghjklk"; for(int i=0;i<10;i++) cout< 
     
       ()); for(int i=0;i<10;i++) cout< 
       
      
     
   



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/209687.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午8:39
下一篇 2026年3月19日 上午8:39


相关推荐

  • 5线上模式刷2亿bug_GTA5还想冲销量?玩家利用BUG刷钱,遭受比封号更严厉惩罚

    5线上模式刷2亿bug_GTA5还想冲销量?玩家利用BUG刷钱,遭受比封号更严厉惩罚  《GTA5》作为一款神级开放世界游戏,即便已经发售了七年,凭借其优秀的品质以及耐玩性,而今仍旧是许多玩家讨论的焦点。不过在近期,鲜有出现负面消息的R星却因为线上模式的BUG而受到了玩家们的非议。  《GTA5》说是游戏,但你在玩的过程中不自觉就代入到了主角的视角中。跟现实世界一样,美金在游戏中也非常重要。有了钱,你就可以在洛圣都这个虚拟世界中过自己想要的生活。  但玩家在游戏中无论是使用合法的…

    2022年4月26日
    349
  • 2022IDEA专业版激活码【2022最新】「建议收藏」

    (2022IDEA专业版激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~4KDDGND3CI-eyJsaWNlb…

    2022年4月1日
    1.1K
  • Flex布局详解

    Flex布局详解传统的布局基于盒模型依赖于 display 属性 position 属性 float 属性 但是特殊布局就有些捉襟见肘了 垂直居中就不容易实现了一 Flex 布局是什么 flex 是 FlexibleBox 的缩写 意为弹性布局 用来为盒模型提供最大的灵活性 任何一个容器都可以指定为 Flex 布局 box display flex 行内元素也可以使用 Flex 布局 box display inlone flex Webkit 内核的浏览器 必

    2026年3月20日
    5
  • JS验证身份证的合法性[通俗易懂]

    JS验证身份证的合法性

    2022年1月20日
    50
  • 扣子即梦插件怎么用

    扣子即梦插件怎么用

    2026年3月13日
    2
  • 网络信息安全——访问控制「建议收藏」

    网络信息安全——访问控制「建议收藏」**访问控制**访问控制是给出一套方法,将系统中的所有功能标识出来,组织起来,托管起来,将所有的数据组织起来标识出来托管起来,然后提供一个简单的唯一的接口,这个接口的一端是应用系统一端是权限引擎。权限引擎所回答的只是:谁是否对某资源具有实施某个动作(运动、计算)的权限。返回的结果只有:有、没有、权限引擎异常了。访问控制是几乎所有系统(包括计算机系统和非计算机系统)都需要用到的一种技术。访问控制是按用户身份及其所归属的某项定义组来限制用户对某些信息项的访问,或限制对某些控制功能的使用的一种技术。

    2022年7月23日
    15

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号