예제 #1
0
        /// <summary>
        /// Заполняет файл случайными числами и сортирует их
        /// </summary>
        /// <param name="N">колличество случайных чисел</param>
        /// <returns>Время сортировки</returns>
        public string SortRandomArray(int N)
        {
            string       FileName = "Array.txt";
            StreamWriter SW       = new StreamWriter(FileName);
            Random       rand     = new Random();

            for (int i = 0; i < N; i++)
            {
                SW.WriteLine(rand.Next(0, 100));
            }
            SW.Close();
            string Array;

            MergeSort.ResetCounters();
            DatabaseController.CreateTable();
            Stopwatch timer = new Stopwatch();

            timer.Start();
            Array = MergeSort.NaturalMergeSort(FileName);
            timer.Stop();
            DatabaseController.AddSort("MergeSort", timer.Elapsed.ToString(), MergeSort.GetCompareCount(), MergeSort.GetSwapCount(), Array);
            MessageBox.Show("Файл Array.txt заполнен " + N + " случайными числами и успешно отсортирован!", "Сортировка");
            return(timer.Elapsed.ToString());
        }
예제 #2
0
 /// <summary>
 /// Сортирует массив из файла
 /// </summary>
 /// <param name="FileName">Путь до сортируемого файла</param>
 /// <returns>Время сортировки</returns>
 public string SortArray(string FileName)
 {
     if (new FileInfo(FileName).Exists)
     {
         string Array;
         MergeSort.ResetCounters();
         DatabaseController.CreateTable();
         Stopwatch timer = new Stopwatch();
         timer.Start();
         try
         {
             Array = MergeSort.NaturalMergeSort(FileName);
         }
         catch
         {
             MessageBox.Show("Файл заполнен некорректно!", "Ошибка");
             return("00:00:00");
         }
         timer.Stop();
         DatabaseController.AddSort("MergeSort", timer.Elapsed.ToString(), MergeSort.GetCompareCount(), MergeSort.GetSwapCount(), Array);
         MessageBox.Show("Сортировка выполнена!", "Сортировка");
         return(timer.Elapsed.ToString());
     }
     else
     {
         MessageBox.Show("Некорректный путь!", "Ошибка");
     }
     return("00:00:00");
 }