#include <iostream>
#include <fstream>
#include<map>
#include<algorithm>
using namespace std;
int find_min(int ar[],int s, int size)
{
int index = s-1;
bool found = false;
for(int i = s; i < size; i++)
{
if(ar[index] > ar[i])
{
index = i;
found = true;
}
}
if (found)
{
return index;
}
else
return -1;
}
void exchange(int &x, int& y)
{
int t=x;
x=y;
y=t;
}
void selection_sort(int arr[], int size)
{
int loc;
for(int count = 0; count < size-1; count++)
{
loc = find_min(arr, count+1,size);
if (loc >= 0)
{
exchange(arr[count], arr[loc]);
}
}
}
int main(){
int arr[] ={9,8,7,6,5,4,3,2,1};
selection_sort(arr,9);
for(int i:arr)
std::cout<<i<<" ";
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnN0cmVhbT4KI2luY2x1ZGU8bWFwPgojaW5jbHVkZTxhbGdvcml0aG0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgoKaW50IGZpbmRfbWluKGludCBhcltdLGludCBzLCBpbnQgc2l6ZSkKewogICAgaW50IGluZGV4ID0gcy0xOwogICAgYm9vbCBmb3VuZCA9IGZhbHNlOwogICAgZm9yKGludCBpID0gczsgaSA8IHNpemU7IGkrKykKICAgIHsKICAgICAgICBpZihhcltpbmRleF0gPiBhcltpXSkKICAgICAgICB7CiAgICAgICAgICAgIGluZGV4ID0gaTsKICAgICAgICAgICAgZm91bmQgPSB0cnVlOwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoZm91bmQpCiAgICB7CiAgICAgICAgcmV0dXJuIGluZGV4OwogICAgfQogICAgZWxzZQogICAgICAgIHJldHVybiAtMTsKfQoKdm9pZCBleGNoYW5nZShpbnQgJngsIGludCYgeSkKewppbnQgdD14Owp4PXk7Cnk9dDsKfQp2b2lkIHNlbGVjdGlvbl9zb3J0KGludCBhcnJbXSwgaW50IHNpemUpCnsKICAgIGludCBsb2M7CiAgICBmb3IoaW50IGNvdW50ID0gMDsgY291bnQgPCBzaXplLTE7IGNvdW50KyspCiAgICB7CiAgICAgICAgbG9jID0gZmluZF9taW4oYXJyLCBjb3VudCsxLHNpemUpOwogICAgICAgIGlmIChsb2MgPj0gMCkKICAgICAgICB7CiAgICAgICAgICAgIGV4Y2hhbmdlKGFycltjb3VudF0sIGFycltsb2NdKTsKICAgICAgICB9CiAgICB9Cn0KCmludCBtYWluKCl7CgppbnQgYXJyW10gPXs5LDgsNyw2LDUsNCwzLDIsMX07CnNlbGVjdGlvbl9zb3J0KGFyciw5KTsKZm9yKGludCBpOmFycikKc3RkOjpjb3V0PDxpPDwiICI7Cn0=