#include <vector>
#include <string>
#include <iostream>
#include <algorithm>
#include <assert.h>
using namespace std;
void selectionSort(vector<string>& dictionary)
{
for (int i = 0; i < dictionary.size(); ++i)
{
int m = i;
for (int j = i + 1; j < dictionary.size(); ++j)
{
if (dictionary[j] < dictionary[m])
m = j;
}
if (m != i)
swap(dictionary[i], dictionary[m]);
}
}
int main()
{
vector<string> data{ "hey", "ok", "so", "no", "okay" };
vector<string> data2 = data;
selectionSort(data);
std::sort(data2.begin(), data2.end());
assert(equal(data.begin(), data.end(), data2.begin())); // verify that your sort matches what std::sort does
for (const auto s : data)
cout << s << ' ';
cout << endl;
}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8YXNzZXJ0Lmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKCnZvaWQgc2VsZWN0aW9uU29ydCh2ZWN0b3I8c3RyaW5nPiYgZGljdGlvbmFyeSkKewogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkaWN0aW9uYXJ5LnNpemUoKTsgKytpKQogICAgewogICAgICAgIGludCBtID0gaTsKICAgICAgICBmb3IgKGludCBqID0gaSArIDE7IGogPCBkaWN0aW9uYXJ5LnNpemUoKTsgKytqKQogICAgICAgIHsKICAgICAgICAgICAgaWYgKGRpY3Rpb25hcnlbal0gPCBkaWN0aW9uYXJ5W21dKQogICAgICAgICAgICAgICAgbSA9IGo7CiAgICAgICAgfQogICAgICAgIGlmIChtICE9IGkpCiAgICAgICAgICAgIHN3YXAoZGljdGlvbmFyeVtpXSwgZGljdGlvbmFyeVttXSk7CiAgICB9Cn0KCmludCBtYWluKCkKewogICAgdmVjdG9yPHN0cmluZz4gZGF0YXsgImhleSIsICJvayIsICJzbyIsICJubyIsICJva2F5IiB9OwogICAgdmVjdG9yPHN0cmluZz4gZGF0YTIgPSBkYXRhOwogICAgc2VsZWN0aW9uU29ydChkYXRhKTsKICAgIHN0ZDo6c29ydChkYXRhMi5iZWdpbigpLCBkYXRhMi5lbmQoKSk7CiAgICBhc3NlcnQoZXF1YWwoZGF0YS5iZWdpbigpLCBkYXRhLmVuZCgpLCBkYXRhMi5iZWdpbigpKSk7IC8vIHZlcmlmeSB0aGF0IHlvdXIgc29ydCBtYXRjaGVzIHdoYXQgc3RkOjpzb3J0IGRvZXMKICAgIGZvciAoY29uc3QgYXV0byBzIDogZGF0YSkKICAgICAgICBjb3V0IDw8IHMgPDwgJyAnOwogICAgY291dCA8PCBlbmRsOwp9Cg==