蓝桥杯比赛准备(1)
一、排序
试题 基础练习 数列排序
资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200
输入格式
第一行为一个整数n。
第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。
输出格式
输出一行,按从小到大的顺序输出排序后的数列。
样例输入
5
8 3 6 4 9
样例输出
3 4 6 8 9
我的答案:
#include <iostream>
#include<algorithm>
using namespace std;
#define N 200
int main(){
int n;
int a[N];
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
sort(a,a+n);
for(int j=0;j<n;j++){
printf("%d ",a[j]);
}
return 0;
}
所学知识点:一、记住头文件#include及sort排序函数的头文件#include以及我所认为的后缀using namespace std;
二、sort函数的使用
sort(a,a+n);
这个是针对于数组的排序,原公式为
sort(首元素地址,尾元素地址,比较元素(cmp));
扩展学习:
(1)对char 类型数组从大到小排序
//对char 类型的数组从大到小排序
bool cmp(char a,char b)
{
return a>b;
}
char c[] ={'T','W','A','K'};
sort(c,c+4,cmp);
后面数组循环输出即可,同上,输出结果按字母表顺序为:WTKA
(2)对结构体数组排序
现定义以下结构体:
struct node{
int x,y;
}sad[10];
如果想要对其中x从大到小排序
则cmp函数的写法为
bool cmp(node a,node b)
{
return a.x>b.x;
}