Quick actions

cmd+k|ctrl+k

Navigation

Languages

quicksort

Snippet info

Language

Cpp

Visibility

public

Author

yoneda

Created

2019-03-29T15:08:47Z

Updated

2019-03-29T15:08:47Z

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

void inspect(vector<int> xs) {
	for(int x : (xs)) {
		cout << x << ", ";
	}
	cout << endl;
}

vector<int> quicksort(vector<int> list) {
	if(list.size() < 2) return list;
	vector<int> xs{list.at(0)}, ys;
	for_each(++list.begin(), list.end(), [&](int elem) {(elem < list.at(0) ? xs : ys).insert((elem < list.at(0) ? xs : ys).begin(), elem);});
	auto rs = quicksort(xs), ts = quicksort(ys);
	rs.insert(rs.end(), ts.begin(), ts.end());
	return rs;
}
int main(int argc, char** args) {
	vector<int> xs {2,3,1,2,5,6,9,8,1,2,3,1};
	inspect(quicksort(xs));
	return 0;
}
INFO