Advertisement
Danielos168

Zadanie2

Nov 21st, 2019
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.11 KB | None | 0 0
  1. using System;
  2. namespace QuickSortDemo
  3. {
  4.     class Example
  5.     {
  6.         static public void merge(string[] arr, int p, int q, int r)
  7.         {
  8.             int i, j, k;
  9.             int n1 = q - p + 1;
  10.             int n2 = r - q;
  11.             string[] L = new String[n1];
  12.             string[] R = new String[n2];
  13.             for (i = 0; i < n1; i++)
  14.             {
  15.                 L[i] = arr[p + i];
  16.             }
  17.             for (j = 0; j < n2; j++)
  18.             {
  19.                 R[j] = arr[q + 1 + j];
  20.             }
  21.             i = 0;
  22.             j = 0;
  23.             k = p;
  24.             while (i < n1 && j < n2)
  25.             {
  26.                 if (L[i].Length <= R[j].Length)
  27.                 {
  28.                     arr[k] = L[i];
  29.                     i++;
  30.                 }
  31.                 else
  32.                 {
  33.                     arr[k] = R[j];
  34.                     j++;
  35.                 }
  36.                 k++;
  37.             }
  38.             while (i < n1)
  39.             {
  40.                 arr[k] = L[i];
  41.                 i++;
  42.                 k++;
  43.             }
  44.             while (j < n2)
  45.             {
  46.                 arr[k] = R[j];
  47.                 j++;
  48.                 k++;
  49.             }
  50.         }
  51.         static public void mergeSort(string[] arr, int p, int r)
  52.         {
  53.             if (p < r)
  54.             {
  55.                 int q = (p + r) / 2;
  56.                 mergeSort(arr, p, q);
  57.                 mergeSort(arr, q + 1, r);
  58.                 merge(arr, p, q, r);
  59.             }
  60.         }
  61.         static void Main(string[] args)
  62.         {
  63.             string[] arr = { "a","ala","kokokosdasderfni","Alicja","kot","dupa"};
  64.             int n = 6, i;
  65.             Console.WriteLine("Merge Sort");
  66.             Console.Write("Initial array is: ");
  67.             for (i = 0; i < n; i++)
  68.             {
  69.                 Console.Write(arr[i] + " ");
  70.             }
  71.             mergeSort(arr, 0, n - 1);
  72.             Console.Write("\nSorted Array is: ");
  73.             for (i = 0; i < n; i++)
  74.             {
  75.                 Console.Write(arr[i] + " ");
  76.             }
  77.  
  78.             Console.ReadKey();
  79.         }
  80.     }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement