daily pastebin goal
57%
SHARE
TWEET

Untitled

a guest Mar 20th, 2019 61 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2.  
  3.  
  4. namespace Lab1_wariacje_bez_powtorzen
  5. {
  6.     class per_z_powt
  7.     {
  8.         private static int numberOfCombos;
  9.  
  10.         public static void Main()
  11.         {
  12.             var collection = new[] { 6, 1, 3, 1, 2 };
  13.             PermuteRep(collection);
  14.             Console.ReadKey();
  15.         }
  16.  
  17.         private static void PermuteRep<T>(T[] workArray, int? end = null, int start = 0)
  18.             where T : IComparable<T>
  19.         {
  20.             if (end == null)
  21.             {
  22.                 end = workArray.Length - 1;
  23.             }
  24.  
  25.             PrintPerm(workArray);
  26.  
  27.             for (int left = end.Value - 1; left >= start; left--)
  28.             {
  29.                 for (int right = left + 1; right <= end; right++)
  30.                     if (workArray[left].CompareTo(workArray[right]) != 0)
  31.                     {
  32.                         Swap(ref workArray[left], ref workArray[right]);
  33.                         PermuteRep(workArray, end, left + 1);
  34.                     }
  35.  
  36.                 var firstElement = workArray[left];
  37.  
  38.                 for (int i = left; i <= end.Value - 1; i++)
  39.                 {
  40.                     workArray[i] = workArray[i + 1];
  41.                 }
  42.  
  43.                 workArray[end.Value] = firstElement;
  44.             }
  45.         }
  46.  
  47.         private static void Swap<T>(ref T a, ref T b)
  48.         {
  49.             var temp = a;
  50.             a = b;
  51.             b = temp;
  52.         }
  53.  
  54.         private static void PrintPerm<T>(T[] arr)
  55.         {
  56.             Console.WriteLine($"{++numberOfCombos}: [{string.Join(", ", arr)}]");
  57.         }
  58.     }
  59. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top