2018_蓝桥_sort()函数_排序函数总结
2018-03-31 09:04
417 查看
.
基本用法:
排序函数:sort()
#include<algorithm>
int a[10];
sort(a,a+10);//默认的是从小到大排序
如果要从大到小,写一个cmp函数
#include<algorithm>
bool cmp(const & int a,const &int b){
return a<b?1 :0;//从小到大是a<b,从大到小是a>b
}
sort(a,b,cmp);
#include<algorithm>
#include<iostream>
using namespace std;
void Show(int*a,int n){
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}
cout<<endl;
}
bool cmp(const int& a, const int & b){//这里的代码之前写错了!汗
//return a<b?1 :0;//从小到大是a<b,从大到小是a>b
return a>b;
}
int main(){
int a[10]={1,2,5,3,1,2,3,4,7,6};
sort(a,a+10);//默认的是从小到大排序
Show(a,10);
//如果要从大到小,写一个cmp函数
sort(a,a+10,cmp);
Show(a,10);
}
.
.
利用排序函数对结构体进行相应的排序(蓝桥杯_算法提高_盾神与积木游戏):
算法提高 盾神与积木游戏 时间限制:1.0s 内存限制:256.0MB 问题描述 最近的m天盾神都去幼儿园陪小朋友们玩去了~
每个小朋友都拿到了一些积木,他们各自需要不同数量的积木来拼一些他们想要的东西。但是有的小朋友拿得多,有的小朋友拿得少,有些小朋友需要拿到其他小朋友的积木才能完成他的大作。如果某个小朋友完成了他的作品,那么他就会把自己的作品推倒,而无私地把他的所有积木都奉献出来;但是,如果他还没有完成自己的作品,他是不会把积木让出去的哟~
盾神看到这么和谐的小朋友们感到非常开心,于是想帮助他们所有人都完成他们各自的作品。盾神现在在想,这个理想有没有可能实现呢?于是把这个问题交给了他最信赖的你。输入格式 第一行为一个数m。
接下来有m组数据。每一组的第一行为n,表示这天有n个小朋友。接下来的n行每行两个数,分别表示他现在拥有的积木数和他一共需要的积木数。输出格式 输出m行,如果第i天能顺利完成所有作品,输出YES,否则输出NO。样例输入2
2
2 2
1 3
3
1 5
3 3
0 4样例输出YES
NO数据规模和约定 1<=n<=10000,1<=m<=10。
bool cmp(const 结构体 & a,const 结构体 &b){
return a.differ<b.differ;
}
.
基本用法:
排序函数:sort()
#include<algorithm>
int a[10];
sort(a,a+10);//默认的是从小到大排序
如果要从大到小,写一个cmp函数
#include<algorithm>
bool cmp(const & int a,const &int b){
return a<b?1 :0;//从小到大是a<b,从大到小是a>b
}
sort(a,b,cmp);
#include<algorithm>
#include<iostream>
using namespace std;
void Show(int*a,int n){
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}
cout<<endl;
}
bool cmp(const int& a, const int & b){//这里的代码之前写错了!汗
//return a<b?1 :0;//从小到大是a<b,从大到小是a>b
return a>b;
}
int main(){
int a[10]={1,2,5,3,1,2,3,4,7,6};
sort(a,a+10);//默认的是从小到大排序
Show(a,10);
//如果要从大到小,写一个cmp函数
sort(a,a+10,cmp);
Show(a,10);
}
.
.
利用排序函数对结构体进行相应的排序(蓝桥杯_算法提高_盾神与积木游戏):
算法提高 盾神与积木游戏 时间限制:1.0s 内存限制:256.0MB 问题描述 最近的m天盾神都去幼儿园陪小朋友们玩去了~
每个小朋友都拿到了一些积木,他们各自需要不同数量的积木来拼一些他们想要的东西。但是有的小朋友拿得多,有的小朋友拿得少,有些小朋友需要拿到其他小朋友的积木才能完成他的大作。如果某个小朋友完成了他的作品,那么他就会把自己的作品推倒,而无私地把他的所有积木都奉献出来;但是,如果他还没有完成自己的作品,他是不会把积木让出去的哟~
盾神看到这么和谐的小朋友们感到非常开心,于是想帮助他们所有人都完成他们各自的作品。盾神现在在想,这个理想有没有可能实现呢?于是把这个问题交给了他最信赖的你。输入格式 第一行为一个数m。
接下来有m组数据。每一组的第一行为n,表示这天有n个小朋友。接下来的n行每行两个数,分别表示他现在拥有的积木数和他一共需要的积木数。输出格式 输出m行,如果第i天能顺利完成所有作品,输出YES,否则输出NO。样例输入2
2
2 2
1 3
3
1 5
3 3
0 4样例输出YES
NO数据规模和约定 1<=n<=10000,1<=m<=10。
#include<iostream> #include<algorithm> #include<stack> #include<iomanip> #include<queue> #include<cmath> using namespace std; int Sum = 0;//保留可用的积木 struct C { int data1; int data2; int differ;//difference相差 }; bool cmp(const C &x, const C &y) { return x.differ<y.differ;//从小到大排<,若要从大到小排则> } int main() { int n;//几组 int num;//一组中有几对数据 cin >> n; C * Array = new C[20000];// for (int i = 0; i < n; i++) { cin >> num; for (int i = 0; i < num; i++) { cin >> Array[i].data1 >> Array[i].data2; Array[i].differ = Array[i].data2 - Array[i].data1; } sort(Array, Array + num, cmp);// for (int i = 0; i < num; i++) { //可以拼好的情况 if (Array[i].differ == 0) { Sum += Array[i].data1; continue; } //还需要部件的情况 Sum -= Array[i].differ; if (Sum >= 0) {//需要部件的同学拼好了 Sum += Array[i].data2; } else { cout << "NO" << endl; break;//输出NO后需要跳出循环 } } if (Sum >= 0) { cout << "YES" << endl; } Sum = 0;//归零!! } return 0; }结构体和类一样也是一种数据类型,因此cmp函数可以这样写:
bool cmp(const 结构体 & a,const 结构体 &b){
return a.differ<b.differ;
}
.
相关文章推荐
- 2018_蓝桥_setprecision()函数_保留小数位数函数总结
- php-redis中的sort排序函数总结
- 2018_蓝桥_next_permutation()函数_全排列函数总结
- 2018_蓝桥_exit(0)函数_退出函数总结
- 2018_蓝桥_pow()函数_次幂函数总结
- php-redis中的sort排序函数总结
- 【php数组函数序列】之sort() - 对数组的元素值进行升序排序
- Python中的排序函数argsort,sort,sorted用法
- PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
- C/C++ 调用qsort/sort 对字符数组排序的cmp函数写法
- C++STL 排序函数sort和qsort的用法与区别
- python中排序,函数sort、sorted、argsort,collections.OrderedDict类
- C++ 排序函数 sort(),qsort()的含义与用法 ,字符串string 的逆序排序等
- Scala List的排序函数sortWith
- [C++]排序函数sort()用法
- SQL Server 排序函数 ROW_NUMBER和RANK 用法总结
- sort() 排序函数 入门学习
- JavaScript数组的快速克隆(slice()函数)和数组的排序、乱序和搜索(sort()函数)
- Sql常见问题总结二(Sql语句怎么样查询IP,游标去重复,各种函数使用,各种取时间格式,字符串精确排序,超时锁问题)
- 关于sort排序通用的函数接口