void ShakerSort(vector<int>& values) {
if (values.empty()) {
return;
}
int left = 0;
int right = values.size() - 1;
while (left <= right) {
for (int i = right; i > left; --i) {
if (values[i - 1] > values[i]) {
swap(values[i - 1], values[i]);
}
}
++left;
for (int i = left; i < right; ++i) {
if (values[i] > values[i + 1]) {
swap(values[i], values[i + 1]);
}
}
--right;
}
}
view raw ShakerSort.cpp hosted with ❤ by GitHub