Написать метод, реализующий упорядочивание массива произвольного типа - C# (179200)

Узнай цену своей работы

Формулировка задачи:

Есть задача: Написать метод, реализующий упорядочивание массива произвольного типа. Принцип сравнения двух элементов должен передаваться в метод через делегат. Стандартные инструменты типа Array.Sort и IComparable не использовать. Продемонстрировать работу метода на массиве строк. Мой код почему-то не работает. Массив не сортируется. помогите решить задачу.
using System;
 
namespace ConsoleApplication1
{
    class Program
    {
        public static void Swap<T>(T first, T second)
        {
            var tmp = first;
            first = second;
            second = first;
        }
 
        public static void Sort<T>(T[]arr, Func<T, T, int> compare)
        {
            if (compare == null)
            {
                throw new ArgumentException();
            }
 
            for (int i = 0; i < arr.Length; i++)
            {
                for (int j = i + 1; j < arr.Length; j++)
                {
                    if (compare(arr[j], arr[i]) > 0)
                    {
                        Swap(arr[i], arr[j]);
                    }
                }
            }
        }
 
        public static int CompareString(string s, string t)
        {
            if (s == t) return 0;
            if (s == null) return -1;
            if (t == null) return 1;
 
            if (s.Length < t.Length) return -1;
            if (s.Length > t.Length) return 1;
 
            return s.CompareTo(t);
        }
 
        static void Main(string[] args)
        {
            string[] array = new string[] {"bacd", "abcd", "ff", "rty", "r"};
            Func<string, string, int> cs = CompareString;
            Sort(array, cs);
 
            for (int i = 0; i < array.Length; i++)
            {
                Console.WriteLine(array[i]);
            }
 
            Console.ReadLine();
        }
    }
}

Решение задачи: «Написать метод, реализующий упорядочивание массива произвольного типа»

textual
Листинг программы
Swap(ref arr[i],ref arr[j]);

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


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

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

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