Создать параметризованный метод Sort - C#
Формулировка задачи:
Необходимо создать параметризованный метод Sort с параметром – типом данных. Реализовать в нем сортировку методом выбора (алгоритм ее состоит в том, что сначала выбирается наименьший элемент массива и меняется местами с первым элементом. Затем просматриваются элементы, начиная со второго, и наименьший из них меняется местами со вторым элементом и так далее. Всего произведено будет n-1 замен. На последнем проходе цикла при необходимости меняются местами предпоследний и последний элементы массива). На данный метод накладывается ограничение – объекты можно сравнивать друг с другом с помощью метода CompareTo.
Отсортировать с помощью данного метода следующие массивы:
Помогите пожалуйста
a = { 1, 6, 4, 2, 7, 5, 3 } b = { 1.1, 6.6, 4.4, 2.4, 7.6, 5.5, 3.3 } c = { sdef, sd, sdfsd, sdf }
Решение задачи: «Создать параметризованный метод Sort»
textual
Листинг программы
using System; namespace ConsoleApp1 { class Program { static void Swap<T>(ref T lft, ref T rht) { T t = lft; lft = rht; rht = t; } static void SelectionSort<T>(T[] a) where T : IComparable<T> { for (int i = 0; i < a.Length - 1; ++i) { int min = i; for (int j = i + 1; j < a.Length; ++j) { if (a[j].CompareTo(a[min]) < 0) min = j; } Swap(ref a[i], ref a[min]); } } static void Main() { int[] a = { 1, 6, 4, 2, 7, 5, 3 }; Console.WriteLine(String.Join(" ", a)); SelectionSort(a); Console.WriteLine(String.Join(" ", a)); Console.WriteLine(); double[] b = { 1.1, 6.6, 4.4, 2.4, 7.6, 5.5, 3.3 }; Console.WriteLine(String.Join(" ", b)); SelectionSort(b); Console.WriteLine(String.Join(" ", b)); Console.WriteLine(); string[] c = { "sdef", "sd", "sdfsd", "sdf" }; Console.WriteLine(String.Join(" ", c)); SelectionSort(c); Console.WriteLine(String.Join(" ", c)); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д