using System;
using System.Collections.Generic;
using System.Text;

namespace RandomUsefulThings.Misc.Sorting
{
    public static class Array_Ex_SelectionSort
    {
        [Obsolete( "untested" )]
        public static void SelectionSort( this int[] arr )
        {
            int n = arr.Length;

            // One by one move boundary of unsorted subarray
            for( int i = 0; i < n - 1; i++ )
            {
                // Find the minimum element in unsorted array
                int min_idx = i;
                for( int j = i + 1; j < n; j++ )
                    if( arr[j] < arr[min_idx] )
                        min_idx = j;

                // Swap the found minimum element with the first
                // element
                int temp = arr[min_idx];
                arr[min_idx] = arr[i];
                arr[i] = temp;
            }
        }
    }
}
