景点游览——算法

亡梦爱人 提交于 2020-01-21 04:15:03

景点游览

问题描述

问题描述

小明来到一个景区游玩,但是他的时间有限,没办法逛遍所有的景点,所以他从网上下载了每个景点的评分,他希望能够使游览的景点的评分总和最高,于是他希望你帮他对于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
请按任意键继续. . .

总结

对于排序有很多种方式:

  • 插入排序
    • 直接插入排序
    • 希尔排序
  • 选择排序
    • 简单选择排序
    • 堆排序
  • 交换排序
    • 冒泡排序
    • 快速排序
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!