题解 | #使用算法#

使用算法

http://www.nowcoder.com/practice/ba99206d258c4f96a69866bdf77162b4

题目的主要信息:

  • 输入5个整数,使用 vector 进行存储,使用 STL 排序算法对元素进行排序(从大到小)
  • 再使用 STL 遍历算法输出元素

具体做法:

这道题主要是使用STL的库函数,我们要在头部添加algorithm库。

对于数组排序,我们有sort函数,可以直接从首(第一个参数)排到尾(第二个参数),但是sort函数排出来是从小到大,不符合题目要求的从大到小,因此我们需要在第三个参数添加 greater<int>()alt

对于数组遍历,我们有for_each函数,可以从首(第一个参数)到尾(第二个参数),取出每一个元素,放到第三个参数所表示的函数,我们在该函数里写打印语句即可。

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

void print(int x){ //打印x的变量
    cout << x << " ";
}
int main() {
	int num;
	vector<int> v;
	for (int i = 0; i < 5; i++) { //输入
		cin >> num;
		v.push_back(num);
	}
    sort(v.begin(), v.end(), greater<int>()); //从大到小排序
    for_each(v.begin(), v.end(), print); //取出每个元素送入print函数中
	return 0;
}

复杂度分析:

  • 时间复杂度:O(nlog2n)O(nlog_2n)O(nlog2n),其中nnn为数组长度,排序属于快排,复杂度为O(nlog2n)O(nlog_2n)O(nlog2n),遍历的复杂度为O(n)O(n)O(n)
  • 空间复杂度:O(1)O(1)O(1),常数空间
孤帆远影碧空尽 文章被收录于专栏

牛客网各类题单题解~

全部评论

相关推荐

钱嘛数字而已:拖拉机被发明出来之后,就不需要农民了吗?农民还是需要的,但不需要这么多了,另外对农民的要求也变高了,需要会开拖拉机。
点赞 评论 收藏
分享
03-29 17:05
门头沟学院 Java
asdasdasda...:我前段时间找工作焦虑,有几天连续熬夜熬穿了,然后心脏突然不舒服,立马躺床上睡觉了,然后第二天还是不舒服,去看医生说是心率不齐,吓得我后面天天早早睡觉,调养身体,过了好几天才好过来。所以真的,工作这些东西哪有那么重要,最多钱多一点钱少一点,降低物欲。活着才是最重要的,现在想想真的后怕
如何排解工作中的焦虑
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务