Написать метод, реализующий упорядочивание массива произвольного типа - C# (179199)
Формулировка задачи:
Есть такая задача:
Я ее написал, но работает только, если метод принимает массив того типа, который мы явно укажем. Значит, у меня есть:
--3 метода сравнения массива;
--Сам делегат;
--И метод ArrayProcessor, который принимает T[] array и этот делегат. Получается, что я создаю три экземпляра делегата, которые ссылаются на разные методы сортировки и уже в ArrayProcessor передам массив и один из этих делегатов. Проблема только в том, как реализовать работу с массивами произвольного типа? Я не могу передать в метод массив типа T[] без использования IComparable, т.к. внутри метода будет сообщение "Operator '<' cannot be applied to operands of type 'T' and 'T' ". По этому вопросу я уже создавал тему, вот: Обобщенный метод сортировки массива
Есть у кого идеи, как реализовать? Может у меня сам подход к решению неверный?
Написать метод, реализующий упорядочивание массива произвольного типа. Принцип сравнения двух элементов должен передаваться в метод через делегат. Стандартные инструменты типа Array.Sort и IComparable не использовать.
Решение задачи: «Написать метод, реализующий упорядочивание массива произвольного типа»
textual
Листинг программы
// В .NET имеется готовый делегат с таким же именем, но раз уж надо все свое... public delegate int Comparison<T>(T first, T second); public void BubbleSort<T>(T[] a, Comparison<T> compare) { for (int i = 0; i < a.Length; i++) { for (int j = i + 1; j < a.Length; j++) { if (compare(a[j], a[i]) < 0) { var temp = a[i]; a[i] = a[j]; a[j] = temp; } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д