BVB Source Codes

Algorithm-Implementations Show BubbleSort.cs Source code

Return Download Algorithm-Implementations: download BubbleSort.cs Source code - Download Algorithm-Implementations Source code - Type:.cs
  1. 锘縰sing System.Collections.Generic;
  2.  
  3. namespace JamLib.Algorithms.Sorting.ExchangeSorts
  4. {
  5.     public static class BubbleSort
  6.     {
  7.         // TODO: Think about adding additional overloads for IComparable as well as Comparison (so that we can use lambda expressions)
  8.         public static void Sort<T>(IList<T> data) { Sort(data, Comparer<T>.Default); }
  9.         public static void Sort<T>(IList<T> data, IComparer<T> comparer)
  10.         {
  11.             int length = data.Count;
  12.             bool sorted = false;
  13.             while (!sorted)
  14.             {
  15.                 // Reset Sort Status
  16.                 sorted = true;
  17.  
  18.                 for (int i = 1; i < length; i++)
  19.                 {
  20.                     // if this pair is out of order, swap them and remember something changed
  21.                     if (comparer.Compare(data[i - 1], data[i]) > 0)
  22.                     {
  23.                         SortingUtils.Swap(data, i - 1, i);
  24.                         sorted = false;
  25.                     }
  26.                 }
  27.  
  28.                 // NOTE: Optimization, since each pass trough the array the last element is always in it's final place. We no longer need to check it.
  29.                 length--;
  30.             }
  31.         }
  32.  
  33.  
  34.     }
  35. }
downloadBubbleSort.cs Source code - Download Algorithm-Implementations Source code
Related Source Codes/Software:
raty - 2017-04-22
RDVTabBarController - Highly customizable tabBar and tabBarController fo... 2017-04-22
material-icon-lib - Library containing over 1500 material vector icons... 2017-04-21
httpdiff - Perform the same request against two HTTP servers ... 2017-04-21
jquerytools - The missing UI library for the Web ... 2017-04-21
mcrouter - Mcrouter is a memcached protocol router for scalin... 2017-04-22
dynomite - A generic dynamo implementation for different k-v ... 2017-04-22
kityminder - Baidu brain figure 2017-04-22
llvm - Mirror of official llvm git repository located at ... 2017-04-22
RBBAnimation - Block-based animations made easy, comes with easin... 2017-04-22
ied - 2017-04-29
Nimble - A Matcher Framework for Swift and Objective-C 2017-04-29
MHVideoPhotoGallery - A Photo and Video Gallery 2017-04-29
shoulda-matchers - Collection of testing matchers extracted from Shou... 2017-04-29
Android-SlideExpandableListView - A better ExpandableListView, with animated expanda... 2017-04-29
AppSales-Mobile - App Sales allows iPhone and Mac App Store develope... 2017-04-29
react-templates - Light weight templates for react ... 2017-04-28
afterglow-theme - A minimal dark Theme for Sublime Text 2 and 3 2017-04-28
jwt-go - Golang implementation of JSON Web Tokens (JWT) 2017-04-28
DeerResume - Tool MarkDown online resume, online preview, edit,... 2017-04-28

 Back to top