public void ArrayEmulatorSort(int[] a, int[] b)
        {
            var arr = new ArrayEmulator("for_test.txt");

            for (int i = 0; i < a.Length; i++)
            {
                arr.Add(a[i]);
            }

            Assert.AreEqual(a.Length, arr.Length);
            Console.WriteLine("in Array  in Emulator");
            for (int i = 0; i < a.Length; i++)
            {
                Console.WriteLine($"{a[i],8}  {arr[i],-8}");
                Assert.AreEqual(a[i], arr[i]);
            }

            QuickSort_OnlyFile.Sort.QuickSort(arr, 0, arr.Length - 1);

            Console.WriteLine("After Sort\nin Array  in Emulator");
            for (int i = 0; i < a.Length; i++)
            {
                Console.WriteLine($"{b[i],8}  {arr[i],-8}");
                Assert.AreEqual(b[i], arr[i]);
            }

            arr.Dispose();
            File.Delete("for_test.txt");
        }
Esempio n. 2
0
        static string TestArrayFile(ArrayEmulator arr)
        {
            var time = Stopwatch.StartNew();

            QuickSort_OnlyFile.Sort.QuickSort(arr, 0, arr.Length - 1);
            time.Stop();
            return(time.Elapsed.Minutes + "." + time.Elapsed.Seconds + "." + time.Elapsed.Milliseconds);
        }
        public static void QuickSort(ArrayEmulator arr, int start, int end)
        {
            if (start < end)
            {
                int i = Partition(arr, start, end);

                QuickSort(arr, start, i - 1);
                QuickSort(arr, i + 1, end);
            }
        }
Esempio n. 4
0
        static ArrayEmulator GetRandomArrayFile(int length)
        {
            var arr    = new ArrayEmulator("testarray.dat", 4, length);
            var random = new Random();

            for (int i = 0; i < arr.Length; i++)
            {
                arr[i] = random.Next(int.MinValue, int.MaxValue);
            }

            return(arr);
        }
        private static int Partition(ArrayEmulator arr, int start, int end)
        {
            int temp;
            int p = arr[end];
            int i = start - 1;

            for (int j = start; j <= end - 1; j++)
            {
                if (arr[j] <= p)
                {
                    i++;
                    temp   = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
            }

            temp       = arr[i + 1];
            arr[i + 1] = arr[end];
            arr[end]   = temp;
            return(i + 1);
        }