/// <summary> /// Sort function, uses the Bubble sort algoritm /// </summary> /// <param name="arr"> Array with type InitAr. </param> public static void Sort(InitArr arr) { int[] array = new int[arr.Arr().Length]; Array.Copy(arr.Arr(), array, arr.Arr().Length); var watch = Stopwatch.StartNew(); int size = array.Length; for (int i = 0; i < array.Length; i++) { for (int j = 0; j < size - 1; j++) { if (array[j] > array[j + 1]) { array[j + 1] = array[j + 1] + array[j]; array[j] = array[j + 1] - array[j]; array[j + 1] = array[j + 1] - array[j]; } } size--; } watch.Stop(); elapsedTime = watch.ElapsedTicks * (1000000.0 / Stopwatch.Frequency); }
/// <summary> /// Sort function, uses the heap sort algoritm /// </summary> /// <param name="arr"> Array with type InitAr. </param> /// <returns>Returns sorted array</returns> public static int[] Sort(InitArr arr) { int[] array = new int[arr.Arr().Length]; Array.Copy(arr.Arr(), array, arr.Arr().Length); var watch = Stopwatch.StartNew(); for (int i = array.Length / 2 - 1; i >= 0; i--) { Heap(array, array.Length, i); } int temp; for (int i = array.Length - 1; i >= 0; i--) { temp = array[0]; array[0] = array[i]; array[i] = temp; Heap(array, i, 0); } watch.Stop(); elapsedTime = watch.ElapsedTicks * (1000000.0 / Stopwatch.Frequency); return(array); }
/// <summary> /// Sort function via Merge sort. /// </summary> /// <param name="arr"> Array with type InitAr. </param> public static int[] Sort(InitArr arr) { int[] array = new int[arr.Arr().Length]; Array.Copy(arr.Arr(), array, arr.Arr().Length); var watch = Stopwatch.StartNew(); mergeSort(array, 0, array.Length - 1); watch.Stop(); elapsedTime = watch.ElapsedTicks * (1000000.0 / Stopwatch.Frequency); return(array); }
/// <summary> /// Sort function, uses the heap sort algoritm /// </summary> /// <param name="arr"> Array with type InitAr. </param> public static void Sort(InitArr arr) { int[] array = new int[arr.Arr().Length]; Array.Copy(arr.Arr(), array, arr.Arr().Length); var watch = Stopwatch.StartNew(); int size = array.Length; for (int i = 1; i < array.Length; i++) { int j = i; while (j > 0 && array[j - 1] > array[j]) { array[j] = array[j] + array[j - 1]; array[j - 1] = array[j] - array[j - 1]; array[j] = array[j] - array[j - 1]; j--; } } watch.Stop(); elapsedTime = watch.ElapsedTicks * (1000000.0 / Stopwatch.Frequency); }