您的位置:首页 > 编程语言 > C语言/C++

#C++初学记录(sort函数)

2020-02-07 21:19 78 查看

sort函数
前言:当进行贪心算法的学习时,需要用到sort函数,因为初学c++汇编语言,sort的具体用法没有深入学习,所以这里进行sort学习记录并只有基础用法并借用贪心算法题目的代码。
百度百科:用于C++中,对给定区间所有元素进行排序。头文件是#include algorithm。

编译代码

#include<iostream>
#include<algorithm>
using namespace std;

#define MAXN 100

struct node{
int start;
int end;
}record[MAXN];

//结构体排序
bool cmp(const node& a,const node& b)
{
return a.end < b.end;
}
int main()
{
int n, count, lastend, i;

while(true){
//读入n
cin>>n;

//判定结束条件
if(n == 0)
break;

//读入原始数据
for(i=0; i<n; i++)
cin >> record[i].start >> record[i].end;

//排序:按结束时间
sort(record, record + n, cmp);

//贪心法处理:后一个起始时间必须大于或等于前一个终止时间
count = 0;
lastend = -1;
for(i=0; i<n; i++){
if(record[i].start >= lastend) {
count++;
lastend = record[i].end;
}
}
cout<<count<<endl;
}
return 0;
}

函数理解
sort函数是c++中非常实用的函数,我们不再需要使用冒泡排序等排序方法对数据进行排序,使用sort函数即可对所选定的数据进行你需要的排序方法,排序规则可以自己编写。sort函数需要键入三个参数,第一个和第二个参数是需要排序的数据起始和结束端,第三个参数是需要自己自行定义的排序规则,即告诉函数它应该怎么进行排序,若第三个参数不进行编写,则默认由小到大进行排序。

bool cmp(const node& a,const node& b)
{
return a.end < b.end;
}
sort(record, record + n, cmp);

参数cmp就由自己定义成对a结构体的end组数组进行由小到大的排序。

  • 点赞
  • 收藏
  • 分享
  • 文章举报
Zhorld 发布了48 篇原创文章 · 获赞 0 · 访问量 328 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: