#include <iostream> #include <vector> #include <random> #include <cstdint> #include <algorithm> typedef std::vector<std::uintmax_t> DType; DType MakeVector(const std::size_t& N,const unsigned int& RS=0) { std::minstd_rand mr(RS); DType R(N); for (auto& o : R) { o = mr(); } std::shuffle(R.begin(), R.end(), mr); return R; } DType StalinSort(const DType& D) { DType R; R.push_back(D.front()); for (std::size_t i = 1; i < D.size(); i++) { if (D[i] > D[i - 1]) { R.push_back(D[i]); } } return R; } int main() { DType D = MakeVector(32); DType R = D; while (!std::is_sorted(R.begin(), R.end())) {// ...o(N)???? R = StalinSort(R); } for (auto& o : D) { std::cout << o << ','; } std::cout << std::endl; std::cout << std::endl; for (auto& o : R) { std::cout << o << ','; } std::cout << std::endl; return 0; }
Standard input is empty
182605794,1271135913,631416347,48271,2075782095,2010567813,2136927794,1250328747,2064876628,1738531149,1402304087,1203428207,1936030137,1914720637,2078669041,564586691,1105902161,1098894339,407355683,1931656580,353718330,638022372,854716505,1882556969,1842513780,1559527823,1291394886,914937185,1596680831,1947433875,890442452,192302371, 182605794,1271135913,2075782095,2136927794,