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

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

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

Есть задача: Написать метод, реализующий упорядочивание массива произвольного типа. Принцип сравнения двух элементов должен передаваться в метод через делегат. Стандартные инструменты типа Array.Sort и IComparable не использовать. Продемонстрировать работу метода на массиве строк. Мой код почему-то не работает. Массив не сортируется. помогите решить задачу.
Листинг программы
  1. using System;
  2. namespace ConsoleApplication1
  3. {
  4. class Program
  5. {
  6. public static void Swap<T>(T first, T second)
  7. {
  8. var tmp = first;
  9. first = second;
  10. second = first;
  11. }
  12. public static void Sort<T>(T[]arr, Func<T, T, int> compare)
  13. {
  14. if (compare == null)
  15. {
  16. throw new ArgumentException();
  17. }
  18. for (int i = 0; i < arr.Length; i++)
  19. {
  20. for (int j = i + 1; j < arr.Length; j++)
  21. {
  22. if (compare(arr[j], arr[i]) > 0)
  23. {
  24. Swap(arr[i], arr[j]);
  25. }
  26. }
  27. }
  28. }
  29. public static int CompareString(string s, string t)
  30. {
  31. if (s == t) return 0;
  32. if (s == null) return -1;
  33. if (t == null) return 1;
  34. if (s.Length < t.Length) return -1;
  35. if (s.Length > t.Length) return 1;
  36. return s.CompareTo(t);
  37. }
  38. static void Main(string[] args)
  39. {
  40. string[] array = new string[] {"bacd", "abcd", "ff", "rty", "r"};
  41. Func<string, string, int> cs = CompareString;
  42. Sort(array, cs);
  43. for (int i = 0; i < array.Length; i++)
  44. {
  45. Console.WriteLine(array[i]);
  46. }
  47. Console.ReadLine();
  48. }
  49. }
  50. }

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

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

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


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

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

15   голосов , оценка 4.067 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы