题解 B2049 【最大数输出】
我们不妨把题目的意思转变一下:给定一个长度为
显然,我们可以直接使用 max 函数进行求解,核心代码如下:
cout << max(a, max(b, c)) << endl;
注意:需要添加头文件 #include <algorithm> 或 #include <bits/stdc++.h> 才能使用。
还有另外一种比较常见的做法:将数列先从小到大进行排序,输出最大的元素。排序的方法也可以使用 sort 函数进行求解,功能是利用快速排序将数组进行排序,时间复杂度
时间复杂度一般用符号
核心代码:
sort(a + 1, a + 4);
cout << a[3] << endl;
解释:a 为题面中给出的数列,在代码中就是数组。在访问数组时,直接访问数组名可以访问到数组第一个元素的地址,由于我的代码习惯是从 a, a + 3 就变为了 a + 1, a + 4,此处的
注意:此处的 sort 函数仍然需要添加上述的两个头文件。
对于快速排序内部更详细的实现流程,可以参考 P1177 【模板】快速排序 中其他同学的优秀题解。
对于时间复杂度的详细解释,可以查看作者的 CSP初赛知识点梳理 的「复杂度」部分