Bubble Sort C#
Bubble Sort using C#
A Bubble Sort is an algorithm used to sort thru a list by comparison of data adjacent to itself then sorting if necessary. This process continues untill the entire list is sorted.
*Featured Code Created By: Shane Overby
C#
/*
Original by me, Shane Overby
This is my own implementation of the Bubble Sort algorithm
You can download this code for LINQPad, here: http://share.linqpad.net/c5rmaq.linq
Input: None
Output: 1.) an unsorted list of random numbers
2.) an unsorted control list
3.) the same list of random numbers, sorted
4.) control list, sorted using <List>.Sort()
Instructions:
1.) Run the program
2.) Verify that the output is valid
I hope you have found something helpful and/or useful in this code and, as always, Happy Coding!
SPECIAL NOTE:
The <List>.Sort() method implements multiple sorting algorithms and executes them based on conditions of the List object calling the method
Conditions for sort-type selection:
-- If the partition size is fewer than 16 elements, it uses an insertion sort algorithm
-- If the number of partitions exceeds 2 * LogN, where N is the range of the input array, it uses a Heapsort algorithm
-- Otherwise, it uses a Quicksort algorithm
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SoloLearn
{
class Program
{
static void Main(string[] args)
{
List<int> nums = new List<int>();
List<int> control;
Random rdm = new Random();
bool sorted = false;
for (int i = 0; i <= 27; i++)
nums.Add(rdm.Next(1, 28));
control = nums;
Console.WriteLine("Unsorted list, to be sorted:");
for(int i = 0; i < nums.Count; i++)
Console.Write($"{nums[i]}{(i == nums.Count - 1 ? "\n\n" : ", ")}");
Console.WriteLine("Unsorted control list:");
for(int i = 0; i < control.Count; i++)
Console.Write($"{control[i]}{(i == control.Count - 1 ? "\n\n" : ", ")}");
//Sorting list using my implementation of the Bubble Sort algorithm
while (!sorted)
{
for (int i = 1; i < nums.Count; i++)
if (nums[i - 1] > nums[i])
{
int x = nums[i];
nums[i] = nums[i - 1];
nums[i - 1] = x;
}
sorted = true;
for (int i = 1; i < nums.Count; i++)
if (nums[i - 1] > nums[i])
{
sorted = false;
break;
}
}
Console.WriteLine("List sorted, using my implementation of the bubble sort:");
for (int i = 0; i < nums.Count; i++)
Console.Write($"{nums[i]}{(i == nums.Count - 1 ? string.Empty : ", ")}");
//Sorting control list
control.Sort();
Console.WriteLine("\n\nControl list, sorted using <List>.Sort():");
for(int i = 0; i < control.Count; i++)
Console.Write($"{control[i]}{(i == control.Count - 1 ? "\n\n" : ", ")}");
}
}
}
Comments
Post a Comment