景点游览
问题描述
问题描述
小明来到一个景区游玩,但是他的时间有限,没办法逛遍所有的景点,所以他从网上下载了每个景点的评分,他希望能够使游览的景点的评分总和最高,于是他希望你帮他对于N个景点排下序。
输入格式
输入的第一行包含一个正整数N,表示N个景点。
第二行有N个正整数,表示每个景点的评分值。
输出格式
输出一行,包含N个正整数,表示N个景点的评分从大到小的排列
样例输入
4
3 2 4 1
样例输出
4 3 2 1
数据规模和约定
N<=1000,每个景点的评分<=10000。
问题分析
对数字使用数组进行存储,考虑到数组长度的定义。典型的排序问题,采取排序方式不同,程序的复杂度也将不一样
代码实现
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
//冒泡排序
void MP(int a[],int N){
int temp;
for(int i=0;i<N-1;i++){
for(int j=0;j<N-1-i;j++){
if(a[j]<a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}
int main(){
int N;
cin>>N;//多少个数字
int a[N];
for(int i=0;i<N;i++)
cin>>a[i];
MP(a,N);
for(int j=0;j<N;j++)
cout<<a[j]<<" ";
return 0;
}
运行结果
4
3 2 4 1
4 3 2 1
--------------------------------
Process exited after 15.77 seconds with return value 0
请按任意键继续. . .
总结
对于排序有很多种方式:
- 插入排序
- 直接插入排序
- 希尔排序
- 选择排序
- 简单选择排序
- 堆排序
- 交换排序
- 冒泡排序
- 快速排序
来源:CSDN
作者:空 白
链接:https://blog.csdn.net/qq_38496329/article/details/104056445