#include <iostream>
#include <algorithm>
using namespace std;
int findSmallestRemainingElement (int array[], int size, int index)
{
return min_element(array+index, array+size) - array;
}
void swap (int array[], int first_index, int second_index)
{
swap(array[first_index], array[second_index]);
}
void sort (int array[], int size)
{
for ( int i = 0; i < size; i++ )
{
int index = findSmallestRemainingElement( array, size, i );
swap( array, i, index );
}
}
int main()
{
int arr[10] = {5,3,0,-10,3,1,7,0,3,-1};
sort(arr, 10);
for(int n=0; n < 10; ++n)
std::cout << arr[n] << ' ';
std::cout << '\n';
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IGZpbmRTbWFsbGVzdFJlbWFpbmluZ0VsZW1lbnQgKGludCBhcnJheVtdLCBpbnQgc2l6ZSwgaW50IGluZGV4KQp7CiAgICByZXR1cm4gbWluX2VsZW1lbnQoYXJyYXkraW5kZXgsIGFycmF5K3NpemUpIC0gYXJyYXk7Cn0KCnZvaWQgc3dhcCAoaW50IGFycmF5W10sIGludCBmaXJzdF9pbmRleCwgaW50IHNlY29uZF9pbmRleCkKewogICAgc3dhcChhcnJheVtmaXJzdF9pbmRleF0sIGFycmF5W3NlY29uZF9pbmRleF0pOwp9Cgp2b2lkIHNvcnQgKGludCBhcnJheVtdLCBpbnQgc2l6ZSkKewogICAgZm9yICggaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSsrICkKICAgIHsKICAgICAgICBpbnQgaW5kZXggPSBmaW5kU21hbGxlc3RSZW1haW5pbmdFbGVtZW50KCBhcnJheSwgc2l6ZSwgaSApOwogICAgICAgIHN3YXAoIGFycmF5LCBpLCBpbmRleCApOwogICAgfQp9CgppbnQgbWFpbigpCnsKICAgIGludCBhcnJbMTBdID0gezUsMywwLC0xMCwzLDEsNywwLDMsLTF9OwogICAgc29ydChhcnIsIDEwKTsKICAgIGZvcihpbnQgbj0wOyBuIDwgMTA7ICsrbikKICAgICAgICBzdGQ6OmNvdXQgPDwgYXJyW25dIDw8ICcgJzsKICAgIHN0ZDo6Y291dCA8PCAnXG4nOwp9Cg==