SortingAlgorithms

Run Settings
LanguageC#
Language Version
Run Command
namespace Sort { using System; using static System.Console; using System.Collections.Generic; class MainClass { static void Main() { int[] values = { 2, 4, 1, 9, 3, 8, 6, 20, 43, 41, 29 }; var bubbleList = new List<int>(values); var quickList = new List<int>(values); BubbleSort(bubbleList); QuickSort(quickList); } public static void BubbleSort(List<int> bubbleList) { Write("========= Bubble Sort ========="); Write(Environment.NewLine); Write(Environment.NewLine); foreach (var item in bubbleList) { Write($"{item}, "); } Write(Environment.NewLine); new BubbleSorter().Sort(bubbleList); Write(Environment.NewLine); foreach (var item in bubbleList) { Write($"{item}, "); } Write(Environment.NewLine); } public static void QuickSort(List<int> quickList) { Write(Environment.NewLine); Write("========= Quick Sort ========="); Write(Environment.NewLine); Write(Environment.NewLine); foreach (var item in quickList) { Write($"{item}, "); } Write(Environment.NewLine); new QuickSorter().Sort(quickList); Write(Environment.NewLine); foreach (var item in quickList) { Write($"{item}, "); } Write(Environment.NewLine); } } }
namespace Sort { using System; using static System.Console; using System.Collections.Generic; public class BubbleSorter { public List<int> Sort(List<int> originalList) { var iterations = 0; for (var i = 0; i < originalList.Count - 1; i++) { for (var j = 0; j < originalList.Count - 1; j++) { if (originalList[j] > originalList[j + 1]) { var temp = originalList[j + 1]; originalList[j + 1] = originalList[j]; originalList[j] = temp; } iterations++; } iterations++; } WriteLine($"{Environment.NewLine}{iterations} iterations "); return originalList; } } }
namespace Sort { using System; using static System.Console; using System.Collections.Generic; public class QuickSorter { public List<int> Sort(List<int> items, int left = 0, int right = 0) { if (right == 0) right = items.Count - 1; var index = Partition(items, left, right); if (left < index - 1) { Sort(items, left, index - 1); } if (index < right) { Sort(items, index, right); } return items; } private int Partition(List<int> items, int left, int right) { var pivot = items[(right + left) / 2]; var i = left; var j = right; while (i <= j) { while (items[i] < pivot) { i++; } while (items[j] > pivot) { j--; } if (i <= j) { Swap(items, i, j); i++; j--; } } return i; } private void Swap(List<int> originalList, int leftPointer, int rightPointer) { var temp = originalList[leftPointer]; originalList[leftPointer] = originalList[rightPointer]; originalList[rightPointer] = temp; } } }
Editor Settings
Theme
Key bindings
Full width
Lines