SHARE
TWEET

Reverse Bubble Sort

starbeamrainbowlabs Nov 1st, 2014 150 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2.  
  3. /*
  4.  * Bubble Sort
  5.  * By Starbeamrainbowlabs (https://starbeamrainbowlabs.com/)
  6.  *
  7.  * Remove lines with '//debug' on them for normal use.
  8.  */
  9.  
  10. public class BubbleSort
  11. {
  12.         public static void Main() {
  13.                 int[]tosort = generatearray(10, 0, 100);
  14.                 Console.Write("Original: ");
  15.                 printarray(tosort);
  16.                 Console.WriteLine();
  17.                 DoBubbleSort(tosort);
  18.         }
  19.  
  20.         static void DoBubbleSort(int[]arraytosort) {
  21.                 int endingpoint = 1,
  22.                         temp;
  23.                 bool issorted;
  24.  
  25.                 int swaps = 0,
  26.                         iterations = 0,
  27.                         passes = 0; //debug
  28.                
  29.                 do {
  30.                         issorted = true;
  31.  
  32.                         for(int i = arraytosort.Length - 1; i >= endingpoint; i--)
  33.                         {
  34.                                 iterations++; //debug
  35.                                 //Console.WriteLine("i: " + i + " i-1: " + (i - 1));
  36.                                
  37.                                 if (arraytosort[i - 1] > arraytosort[i])
  38.                                 {
  39.                                         swaps++; //debug
  40.                                         //swap the numbers around
  41.                                         temp = arraytosort[i - 1];
  42.                                         arraytosort[i - 1] = arraytosort[i];
  43.                                         arraytosort[i] = temp;
  44.  
  45.                                         issorted = false;
  46.                                 }
  47.                         }
  48.                        
  49.                         Console.Write("pass: " + passes + " ");
  50.                         printarray(arraytosort); //debug
  51.                         Console.WriteLine();
  52.                        
  53.                         passes++; //debug
  54.  
  55.                         endingpoint++;
  56.                 } while (!issorted);
  57.                
  58.                 Console.WriteLine("Sorting Complete!");
  59.                 Console.WriteLine("Statistics\n----------");
  60.                 Console.WriteLine("Passes: " + passes + ", Iterations: " + iterations + " Swaps: " + swaps);
  61.         }
  62.  
  63.         static int[]generatearray(int size, int min = 0, int max = 25) {
  64.                 if (min >= max)
  65.                         throw new Exception("The min was bigger than max.");
  66.  
  67.                 int[]newarray = new int[size];
  68.                 Random generator = new Random();
  69.  
  70.                 for (int i = size - 1; i >= 0; i--) {
  71.                         newarray[i] = generator.Next(min, max);
  72.                 }
  73.  
  74.                 return newarray;
  75.         }
  76.  
  77.         static void printarray(int[]toprint) {
  78.                 Console.Write("[");
  79.                 for (int i = 0; i < toprint.Length; i++) {
  80.                         if (toprint[i] < 10) {
  81.                                 //the number has only one character
  82.                                 Console.Write(" ");
  83.                         }
  84.                         Console.Write(toprint[i]);
  85.                         if (i + 1 != toprint.Length) {
  86.                                 Console.Write(", ");
  87.                         }
  88.                 }
  89.                 Console.Write("] ");
  90.         }
  91. }
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