Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
MrLinder
0 / 0 / 0
Регистрация: 04.10.2014
Сообщений: 41
1

Шейкерная сортировка двусвязного списка

30.06.2015, 02:30. Просмотров 176. Ответов 0
Метки нет (Все метки)

Не могу понять что я делаю не правильно.

Вот функция сортирующая список шейкерной сортировкой

Проблема в том что не сортируется 2 центральных элемента остающихся по мере сжатия границ

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
35
template<class T>
void List<T>::ShakerSort()      //шейкорная сортировка
{
    Node<T> *B, *B_nx, *E, *E_pr;
    Node<T> *lb = Begin, *rb = End;
    
    do{ 
        B = lb;
        B_nx = lb -> next;
        
        while(B != rb )
        { 
            if(B -> key -> Elem[0] > B_nx -> key -> Elem[0] )
            {
                Swap(&B, &B_nx); 
            }   
            B = B -> next;
            B_nx = B_nx -> next;
        }
        rb = rb -> prev;
        
        E = rb;
        E_pr = rb -> prev;
        while(E != lb)
        { 
            if(E -> key -> Elem[0] < E_pr -> key -> Elem[0] )
            {
                Swap(&E, &E_pr); s++;
            }   
            E = E -> prev;
            E_pr = E_pr -> prev;
        }
        
    }while(lb -> next -> next != rb -> prev );    //Почемуто вылазие ошибка если сжать сильнее.
}

while(lb -> next -> next != rb -> prev ); //Проблема с этим


Что я сделал не так?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.06.2015, 02:30
Ответы с готовыми решениями:

Шейкерная сортировка двусвязного списка
Здравствуйте! У меня возникла проблема с сортировкой двусвязного списка. ...

"Сортировка двусвязного списка путем исключения элемента с минимальным значением и включения его в начало нового списка
Здравствуйте! Возникла проблема с программой. Тема: &quot;Сортировка двусвязного...

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

Быстрая сортировка двусвязного списка
что не так?? void newsort(Offender_Node*first,Offender_Node*last) { ...

Сортировка пузырьком двусвязного списка
необходимо отсортировать двусвязный список сортировкой пузырьком.замена...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2015, 02:30

Сортировка кольцевого двусвязного списка (пузырьковая)
Доброго дня! Помогите пожалуйста разобраться с сортировкой кольцевого...

Передача параметров в функцию (сортировка двусвязного списка)
Дан работающий код (двусвязный список+сортировка его пузырьком) Нужно...

Сортировка двусвязного списка, по мере поступления информации
Помогите отсортировать двусвязный список следующим образом: &quot;элементы добавлять...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru