Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
2 / 2 / 1
Регистрация: 08.07.2017
Сообщений: 42
1

Ошибка StackOverflowException при реализации быстрой сортировки

30.05.2018, 10:53. Показов 733. Ответов 1

Здравствуйте, уже несколько дней пытаюсь разобраться в чём дело. Выдаёт ошибку StackOverflowException
Сам код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
class Program
    {
        static void Main(string[] args)
        {
            int[] mass = new int[8] { 6, 7, 2, 5, 9, 1, 3, 8 };
            int first = 0;
            int last = mass.Length - 1;
            Program program = new Program();
            program.Sort(mass, first, last);
        }
        public void Sort (int[] mass, int first, int last)
        {
            int left = first;
            int right = last;
            int pivot = mass[(left + right) / 2];
 
            while(left<right)
            {
                while (mass[left]<pivot) { left+=1; }
                while (mass[right]>pivot) { right-=1; }
                if (left<right)
                {
                    int bufer = mass[left];
                    mass[left] = mass[right];
                    mass[right] = bufer;
                    left += 1;
                    right -= 1;
                }
            }
 
            if (first < left) Sort(mass, first, left);
            if (last > right) Sort(mass, right, last);
        }
    }
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.05.2018, 10:53
Ответы с готовыми решениями:

Различные реализации быстрой сортировки
Доброго времени суток! Необходимо реализовать быструю сортировку: ////1//// По выбору опорного...

Метод быстрой сортировки. Подскажите где ошибка?
Не могу понять где ошибка? using System; namespace ConsoleApplication67 { class Program ...

Ошибка в реализации быстрой сортировки
Сортирует список быстрой сортировкой, результирующий список - Ls. Вместо результата при вызове цели...

Написать код реализации быстрой сортировки
Помогите написать код реализации быстрой сортировки на ассемблере

1
907 / 792 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
30.05.2018, 11:29 2
у Вас if (last > right) Sort(mass, right, last); будет выполняться вечно т.к last будет 0 а right 1 и не будет ничего менять из-за условия while (mass[right]>pivot) { right-=1; }
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.05.2018, 11:29

Сравнить число перестановок при использовании сортировки "пузырьком", методом выбора и алгоритма быстрой сортировки
Напишите программу, которая сравнивает число перестановок элементов при использовании сортировки...

Метод быстрой сортировки: В чем ошибка?
В Паскале я ниачем, нашел метод быстрой сортировки, нужно скоро сдавать, компелятор говорит что там...

Ошибка на этапе выполнения быстрой сортировки
Ошибка а не пойму в чем,код здеясь:#include&lt;iostream&gt; using namespace std; void main(){...

Осознание быстрой сортировки. Почему при while можно писать i < j, а при if так нельзя?
/// &lt;summary&gt; /// Сортирует входную коллекцию по неубыванию с использованием указанного...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru