Реализация рекурсивного алгоритма сортировки выбором - C#
Формулировка задачи:
Реализуйте рекурсивный алгоритм упорядочения по возрастанию заданного массива из n различных целых чисел методом сортировки выбором.
Алгоритм сортировки выбором заключается в следующем:
1) Определить индекс наименьшего элемента массива
2) Поменять местами наименьший и первый элементы массива
3) Выполнить пункты 1 и 2 над остатком массива (массивом без первого элемента)
Пункт 3 повторять, пока остаток массива не сократится до одного элемента
Вот алгоритм сортировки
как его сделать рекурсивным?
class Recurs_Sort
{
int n,max,k;
public Recurs_Sort(int n)
{
this.n = n;
}
public int[] SortByChoose(int[] a, int n)
{
for (int i = n - 1; i > 0; i--)
{
k = i; max = a[i];
for (int j = 0; j < i; j++)
{
if (a[j] > max)
{
k = j;
max = a[j];
}
}
a[k] = a[i];
a[i] = max;
}
return a;
}
public static void Print(int[] a)
{
for (int i = 0; i < a.Length; i++)
Console.Write(a[i].ToString() + " ");
}
}
class Program
{
static void Main(string[] args)
{
int n = 10;
int[] a = { 5, 13, 7, 9, 1, 8, 16, 4, 10, 2 };
Recurs_Sort sortArray = new Recurs_Sort(n);
sortArray.SortByChoose(a,n);
Recurs_Sort.Print(sortArray.SortByChoose(a,n));
Console.ReadLine();
}
}Решение задачи: «Реализация рекурсивного алгоритма сортировки выбором»
textual
Листинг программы
min = i; int tmp = arr[start]; arr[start] = arr[min] arr[min] = tmp;