Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        /// <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);
        }
Esempio n. 4
0
        /// <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);
        }