Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Merge Sort
//Rextester.Program.Main is the entry point for your code. Don't change it. //Compiler version 4.0.30319.17929 for Microsoft (R) .NET Framework 4.5 using System; using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; namespace Rextester { public class Program { public static void Main(string[] args) { /* Merge Sort is one of the popular sorting algorithms in C# as it uses the minimum number of comparisons. The idea behind merge sort is that it is merging two sorted lists. MergeSort is a divide-and-conquer algorithm that splits an array into two halves (sub arrays) and recursively sorts each sub array before merging them back into one giant, sorted array. */ int[] numbers = { 12, 19, 15, 8, 4, 6, 3, 29, 9, 2, 22, 44, 20, 25 }; int len = numbers.Length; Mergesort merge = new Mergesort(); Console.WriteLine("before sort"); merge.Display(numbers); Console.WriteLine("MergeSort By Recursive Method"); merge.MergeSort_Recursive(numbers, 0, len - 1); merge.Display(numbers); }Merge Sort } public class Mergesort { public void MergeSort_Recursive(int [] numbers, int left, int right) { int mid; if (right > left) { mid = (right + left) / 2; MergeSort_Recursive(numbers, left, mid); MergeSort_Recursive(numbers, (mid + 1), right); DoMerge(numbers, left, (mid+1), right); } } public void DoMerge(int [] numbers, int left, int mid, int right) { int [] temp = new int[25]; int i, left_end, num_elements, tmp_pos; left_end = (mid - 1); tmp_pos = left; num_elements = (right - left + 1); while ((left <= left_end) && (mid <= right)) { if (numbers[left] <= numbers[mid]) temp[tmp_pos++] = numbers[left++]; else temp[tmp_pos++] = numbers[mid++]; } while (left <= left_end) temp[tmp_pos++] = numbers[left++]; while (mid <= right) temp[tmp_pos++] = numbers[mid++]; for (i = 0; i < num_elements; i++) { numbers[right] = temp[right]; right--; } } public void Display(int []arr) { int n = arr.Length; for (int i = 0; i < n; ++i) Console.Write(arr[i] + " "); Console.WriteLine(); } } }
run
|
edit
|
history
|
help
0
Delegates, events
Calculator Test
Some linq examples
DB Search
Strings Mix Complete
StackOverflow Generic
SafeSquareRoot.java
Create RFReader HardwareConfig
Enum.IsDefined
Palindrome using stack