Создать параметризованный метод 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));
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.714 из 5
Похожие ответы