Exemple #1
0
        public MainWindow()
        {
            InitializeComponent();

            labelBubbleSpeed.Content    = "";
            labelInsertionSpeed.Content = "";
            labelQuickSpeed.Content     = "";
            labelShellSpeed.Content     = "";

            textBoxSource.Text = string.Empty;
            textBoxSorted.Text = string.Empty;

            if (int.TryParse(textBoxCountElement.Text, out int count))
            {
                Sort = new SortingArray();
                Sort.GetNewArray(count);
            }
            else
            {
                MessageBox.Show("Количество элементов массива должно быть числом");
                //buttonSort.IsEnabled = false;
            }

            // OriginalArray = GetNewArray(LenghtArray);
        }
Exemple #2
0
        private void buttonSort_Click(object sender, RoutedEventArgs e)
        {
            //для создания массива длинной CountElement
            int CountElement = int.Parse(textBoxCountElement.Text);

            //если перед сортировкой нужно получить новый массив
            if ((checkBox.IsChecked == true) || (Sort.OriginalArray.Length != CountElement))
            {
                Sort.GetNewArray(CountElement);
            }

            //если нужно отобразить исходный массив
            if (checkBoxShowSourceArray.IsChecked == true)
            {
                ShowArray(Sort.OriginalArray, textBoxSource);
            }

            //этот массив будет передавать в методы для сортировки
            int[] ArrayForSort;

            //для измерения времени выполнения сортировок
            Stopwatch stopwatch;

            if (checkBoxBubble.IsChecked == true)
            {
                ArrayForSort = Sort.GetArray();

                stopwatch = Stopwatch.StartNew();
                BubleSort(ArrayForSort);
                stopwatch.Stop();

                labelBubbleSpeed.Content = stopwatch.ElapsedMilliseconds.ToString();
                //ShowArray(OriginalArray, textBoxSorted);
                if (!CheckSort(ArrayForSort))
                {
                    labelBubbleSpeed.Content = "Ошибка сортировки!";
                }
            }

            if (checkBoxInsertion.IsChecked == true)
            {
                ArrayForSort = Sort.GetArray();

                stopwatch = Stopwatch.StartNew();
                InsertionSort(ArrayForSort);
                stopwatch.Stop();

                labelInsertionSpeed.Content = stopwatch.ElapsedMilliseconds.ToString();
                // ShowArray(NewArray, textBoxSorted);
                if (!CheckSort(ArrayForSort))
                {
                    labelInsertionSpeed.Content = "Ошибка сортировки!";
                }
            }

            if (checkBoxQuick.IsChecked == true)
            {
                ArrayForSort = Sort.GetArray();

                stopwatch = Stopwatch.StartNew();
                QuickSort(ArrayForSort);
                stopwatch.Stop();

                labelQuickSpeed.Content = stopwatch.ElapsedMilliseconds.ToString();
                //ShowArray(ArrayForSort, textBoxSorted);
                if (!CheckSort(ArrayForSort))
                {
                    labelQuickSpeed.Content = "Ошибка сортировки!";
                }
            }

            if (checkBoxShell.IsChecked == true)
            {
                ArrayForSort = Sort.GetArray();

                stopwatch = Stopwatch.StartNew();
                ShellSort(ArrayForSort);
                stopwatch.Stop();

                labelShellSpeed.Content = stopwatch.ElapsedMilliseconds.ToString();

                if (checkBoxShowSortedArray.IsChecked == true)
                {
                    ShowArray(ArrayForSort, textBoxSorted);
                }

                if (!CheckSort(ArrayForSort))
                {
                    labelShellSpeed.Content = "Ошибка сортировки!";
                }
            }
        }