Advertisement
multifacs

task 23.11

Nov 22nd, 2024
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.63 KB | Source Code | 0 0
  1. public interface IComparer<T>
  2. {
  3.     int Compare(T x, T y);
  4. }
  5.  
  6. public class BubbleSorter
  7. {
  8.     public static void Sort<T>(T[] array, IComparer<T> comparer)
  9.     {
  10.         int length = array.Length;
  11.         for (int i = 0; i < length - 1; i++)
  12.         {
  13.             for (int j = 0; j < length - i - 1; j++)
  14.             {
  15.                 // Используем метод Compare для сравнения элементов
  16.                 if (comparer.Compare(array[j], array[j + 1]) > 0)
  17.                 {
  18.                     // Меняем элементы местами, если они стоят в неправильном порядке
  19.                     T temp = array[j];
  20.                     array[j] = array[j + 1];
  21.                     array[j + 1] = temp;
  22.                 }
  23.             }
  24.         }
  25.     }
  26. }
  27.  
  28. public class IntComparer : IComparer<int>
  29. {
  30.     public int Compare(int x, int y)
  31.     {
  32.         return x - y; // Стандартное сравнение целых чисел
  33.     }
  34. }
  35.  
  36.  
  37. class Program
  38. {
  39.     static void Main(string[] args)
  40.     {
  41.         int[] numbers = { 5, 3, 8, 4, 2, 7, 1, 6 };
  42.  
  43.         // Создаем объект компаратора для целых чисел
  44.         IComparer<int> comparer = new IntComparer();
  45.  
  46.         // Вызываем сортировку
  47.         BubbleSorter.Sort(numbers, comparer);
  48.  
  49.         // Выводим отсортированный массив
  50.         Console.WriteLine("Отсортированный массив:");
  51.         foreach (int number in numbers)
  52.         {
  53.             Console.Write(number + " ");
  54.         }
  55.     }
  56. }
Tags: C#
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement