1101. Quick Sort 解析

来源:互联网 发布:uv胶多少钱淘宝 编辑:程序博客网 时间:2024/06/03 15:43

找快速排序的枢轴。。就是比左边的最大值要打,比右边的最小值要小。

直接遍历三遍就好啦。

#include <iostream>#include <vector>#include <climits>#include <cstring>#define MAX 100010using namespace std;int n;int list[MAX];int isPivot[MAX];int pmin = INT_MAX, pmax = -1;int main() {cin >> n;for (int i = 0; i < n; i++) {cin >> list[i];if (pmax < list[i])pmax = list[i];if (list[i] >= pmax)isPivot[i] = 1;}for (int i = n - 1; i >= 0; i--) {if (pmin > list[i]) {pmin = list[i];}if (list[i] <= pmin && isPivot[i] == 1) {isPivot[i] = 2;}}vector <int> ans;for (int i = 0; i < n; i++) {if (isPivot[i] == 2) {ans.push_back(list[i]);}}if (ans.size() == 0) {cout << ans.size() << endl;cout << endl;}else {cout << ans.size() << endl;cout << ans[0];for (int i = 1; i < ans.size(); i++) {cout << " " << ans[i];}cout << endl;}return 0;}


0 0
原创粉丝点击