2 / 2 / 0
Регистрация: 12.05.2015
Сообщений: 148
|
||||||
1 | ||||||
Быстрая сортировка двусвязного списка03.09.2015, 20:40. Показов 8257. Ответов 10
Метки нет (Все метки)
Уважаемые ! Продолжаются мое обучение, а с ним и появляются новые вопросы. Пытаюсь остортировать двусвязный список быстрой сортировка. Делаю по аналогии с пузырком и с быстрой сортировкой массива. Вот код:
Если выключить рекурсию, и все условия, код с перестановкой местами ячеек работает. Подозреваю что что то не так в логических условиях. Помогите , наведите на правильную мысль! Спасибо"
0
|
03.09.2015, 20:40 | |
Ответы с готовыми решениями:
10
Сортировка двусвязного списка Сортировка двусвязного списка Сортировка двусвязного списка пузырьком Сортировка двусвязного списка - исправить ошибку в коде |
Модератор
12460 / 7484 / 1754
Регистрация: 25.07.2009
Сообщений: 13,763
|
||||||
03.09.2015, 23:40 | 2 | |||||
MaximusL, есть пример быстрой сорировки односвязного списка. Посмотрите, может пригодится...
0
|
2 / 2 / 0
Регистрация: 12.05.2015
Сообщений: 148
|
|
04.09.2015, 06:25 [ТС] | 3 |
Да я примеров кучу пересмотрел. В том что вы приводите, там перестановка происходит перезаписью значений ячейки , а мне нужно чтобы менялось расположение ячейки, т.е. переименовывались указатели.
0
|
Модератор
12460 / 7484 / 1754
Регистрация: 25.07.2009
Сообщений: 13,763
|
|
04.09.2015, 07:29 | 4 |
MaximusL, лучше в узлах указатели хранить на данные, тогда и менять только два указателя прийдётся. В любом случае, нужно будет только функцию swap изменить. А так без разницы, односвязный список, или двусвязный. Двусвязные списки удобны, если нужна возможность удалять произвольные элементы и просматривать список в обратном порядке. Для создания, вывода и такой вот сортировки не важно, будут у узлов указатели на левых соседей, или нет.
0
|
2 / 2 / 0
Регистрация: 12.05.2015
Сообщений: 148
|
|
04.09.2015, 07:53 [ТС] | 5 |
Вы имеете ввиду отсортировать , выставив указатели только в одну сторону? Да я думал об этом , что нужно оптимизировать код, но сейчас проблема точно не в сортировке , я отключаю все циклы и условия, часть когда где работает только перестановка , работает правильно. Вот я и бьюсь, ища ошибку)
0
|
2 / 2 / 0
Регистрация: 12.05.2015
Сообщений: 148
|
|
04.09.2015, 08:44 [ТС] | 7 |
Хотелось бы понять логику , куда и при каких условия узел перекидывается.
0
|
04.09.2015, 09:07 | 8 |
Какие проблемы? Берешь листок бумаги, рисуешь объекты и связи. Добавляшь/удаляешь объект (в середину/начало/конец списка) и снова рисуешь связи. Смотришь, какие связи и как изменились (можно даже цветом выделить).
1
|
2 / 2 / 0
Регистрация: 12.05.2015
Сообщений: 148
|
|
04.09.2015, 09:20 [ТС] | 9 |
Да это я сделал уже , еще раз говорю, часть кода которая меняет местами ячейки работает, не вижу ошибки почему не так.
0
|
Модератор
12460 / 7484 / 1754
Регистрация: 25.07.2009
Сообщений: 13,763
|
||||||||||||||||
05.09.2015, 00:21 | 11 | |||||||||||||||
Не по теме: "аттракцион неслыханной щедрости" (с) llist.h
llist.c
llist_test.c
1
|
05.09.2015, 00:21 | |
05.09.2015, 00:21 | |
Помогаю со студенческими работами здесь
11
Из двусвязного списка в односвязный Быстрая сортировка и Обменная сортировка - реализация API функции Сортировка Шелла быстрее чем Быстрая сортировка Сделать ввод и вывод двусвязного списка Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |