给定10个整数的序列,要求对其重新排序。排序要求:
1.奇数在前,偶数在后;
2.奇数按从大到小排序;
3.偶数按输入顺序逆序排序。
输入一行,包含10个整数,彼此以一个空格分开,每个整数的范围是大于等于0,小于等于100。
按照要求排序后输出一行,包含排序后的10个整数,数与数之间以一个空格分开。
4 7 3 13 11 12 0 47 34 98
47 13 11 7 3 98 34 0 12 4
sort()函数是C++ STL 标准库中的一个模板函数,对普通数组中指定范围内的元素进行排序,排序规则默认以元素值的大小做升序排序,除此之外也可以选择标准库提供的其它排序规则(比如降序)。要使用sort(),需要包含头文件
语法:Sort(start,end,cmp)
参数:
(1)start表示要排序数组的起始地址;迭代器的起始位置,对于数组来说就是数组的首地址,一般写上数组名就可以,因为数组名是一个指针常量。
(2)end表示数组结束地址的下一位;迭代器的结束位置,即首地址加上数组的长度n(代表尾地址的下一地址)。
(3)cmp用于规定排序的方法,可不填,默认升序。迭代器的结束位置,即首地址加上数组的长度n(代表尾地址的下一地址)。
特点:
相较冒泡排序和选择排序所带来的执行效率不高的问题,sort()函数使用的排序方法是类似于快速排序的方法,时间复杂度为n*log2(n),执行效率较高。
样例如下:
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
int d[6] = {1,5,4,3,2,6};
//这是倒序
sort(d,d+6,greater<int>());
for(int i=0;i<6;++i){
cout << d[i] << " ";
}
cout << endl;
//下面是正序
sort(d,d+6);
for(int i=0;i<6;++i){
cout << d[i] << " ";
}
return 0;
}
CIE等级考试