private void StartSort()
        {
            if (StacksSorted())
            {
                return;
            }
            sorting = true;
            if (sortCoroutine != null)
            {
                StopCoroutine(sortCoroutine);
            }
            switch (algorithm)
            {
            case Algorithm.SelectionSort:
                sortCoroutine = StartCoroutine(SelectionSort.Sort(this));
                break;

            case Algorithm.InsertionSort:
                sortCoroutine = StartCoroutine(InsertionSort.Sort(this));
                break;

            case Algorithm.BubbleSort:
                sortCoroutine = StartCoroutine(BubbleSort.Sort(this));
                break;

            case Algorithm.QuickSort:
                sortCoroutine = StartCoroutine(QuickSort.Sort(this));
                break;

            case Algorithm.MergeSort:
                sortCoroutine = StartCoroutine(MergeSort.Sort(this));
                break;

            case Algorithm.HeapSort:
                sortCoroutine = StartCoroutine(HeapSort.Sort(this));
                break;

            case Algorithm.RadixSort:
                sortCoroutine = StartCoroutine(RadixSort.Sort(this));
                break;

            case Algorithm.ShellSort:
                sortCoroutine = StartCoroutine(ShellSort.Sort(this));
                break;
            }
        }
Beispiel #2
0
        private void BtnMergeSort_Click(object sender, EventArgs e)
        {
            var merge = new MergeSort <SortedItem>(items);

            BtnClick(merge);
        }