Advertisement
Guest User

Untitled

a guest
Feb 10th, 2016
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.19 KB | None | 0 0
  1. namespace SortWithDelegate
  2. {
  3.   public delegate int CompareDeleg(int a, int b);
  4.  
  5.   class Program
  6.   {
  7.     static int[] arr;
  8.  
  9.     static int CompareAsc(int x, int y)
  10.     {
  11.       return x - y;
  12.     }
  13.  
  14.     static int CompareDesc(int x, int y)
  15.     {
  16.       return y - x;
  17.     }
  18.  
  19.     static void Sort(CompareDeleg compareMethod)
  20.     {
  21.       for (int i = 0; i < arr.Length - 1; i++)
  22.         for (int j = i + 1; j < arr.Length; j++)
  23.           if (compareMethod(arr[i], arr[j]) > 0)
  24.             Replace(i, j);
  25.     }
  26.  
  27.     private static void Replace(int i, int j)
  28.     {
  29.       int tmp = arr[i];
  30.       arr[i] = arr[j];
  31.       arr[j] = tmp;
  32.     }
  33.  
  34.     static void PrintArr()
  35.     {
  36.       foreach (int num in arr)
  37.         Console.Write(num + ",");
  38.  
  39.       Console.WriteLine();
  40.     }
  41.  
  42.     static void Main(string[] args)
  43.     {
  44.       arr = new int[] { 123, 200, -63, 2, 7612, -13, 8 };
  45.       Console.WriteLine("Orginal nuumbers:");
  46.       PrintArr();
  47.  
  48.       Sort(new CompareDeleg(CompareAsc));
  49.       Console.WriteLine("\nAscending order:");
  50.       PrintArr();
  51.  
  52.       Sort(new CompareDeleg(CompareDesc));
  53.       Console.WriteLine("\nDescending order:");
  54.       PrintArr();
  55.     }
  56.   }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement