HelloWrld
0 / 0 / 0
Регистрация: 22.04.2012
Сообщений: 16
|
||||||
#1 | ||||||
Сортировка списка - C++22.04.2012, 12:19. Просмотров 1350. Ответов 7
Метки нет Все метки)
(
Здравствуйте,
не совсем понимаю как должна быть реализована сортировка вставками в деке. Что имеется на данный момент:
0
|
|
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
|
22.04.2012, 12:19 |
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сортировка списка (C++):
7
"Сортировка двусвязного списка путем исключения элемента с минимальным значением и включения его в начало нового списка - C++ Сортировка списка - C++ Сортировка списка - C++
Сортировка списка - C++ Сортировка списка - C++ |
Заблокирован
|
|
22.04.2012, 12:34 | #2 |
Дальше нужно написать наиболее оптимальный сортировочный алгоритм, и пропустить список через него.
Если с сортировочными алгоритмами еще не знаком, можешь позаимствовать здесь: http://rosettacode.org/wiki/Sorting_algorithms
0
|
Kuzia domovenok
|
||||||
22.04.2012, 14:48 | #3 | |||||
он же решил уже сортировать вставками. для списков как раз подходящий вариант.
Добавлено через 14 минут как-то так. Писал в блокноте, могут быть ошибки.
1
|
Заблокирован
|
||||||
22.04.2012, 15:11 | #4 | |||||
Извеняюсь, что невнимательно прочел. Могу тогда до кучи еще кинуть пример на С
1
|
HelloWrld
0 / 0 / 0
Регистрация: 22.04.2012
Сообщений: 16
|
||||||
22.04.2012, 15:43 [ТС] | #5 | |||||
IFree Host, массивы я понимаю как сортировать, видимо у меня проблемы с пониманием списка...
![]() Kuzia domovenok, так я вроде с этим разобрался, пробую сейчас пузырек сделать ![]() Для начала я просто решил попробовать как вообще происходит процесс обмена местами элементов. Т.к. у нас запись состоит из двух полей: само значение и указатель на след элемент, то значит если мы указатели поменяем местами, то и элементы получается тоже меняются. Вот я написал обмен адресов, но после этого у меня программа не хочет выводить список (точнее бесконечно выводит). Не пойму в чем ошибка
![]()
0
|
Kuzia domovenok
|
||||||||||||||||
22.04.2012, 16:15 | #6 | |||||||||||||||
ну, настоящую сортировку надо в цикле делать, ну ладно будем считать это наброском алгоритма,
во-вторых, у тебя тут не происходит ничего current->next = current; эта операция превратит этот список
перестановку делать надо так(меняем второй и третий местами)
1
|
HelloWrld
0 / 0 / 0
Регистрация: 22.04.2012
Сообщений: 16
|
|
22.04.2012, 16:16 [ТС] | #7 |
Kuzia domovenok, не это не сортировка само собой
![]() Эм.. почему ничего не происходит? Я думал раньше у меня у меня cerrent->next указывал, к примеру, на начало области памяти: 004C46A0. А теперь указывается на: 004C46E8, т.е. поэтому адресу у нас же другое значение хранится? Вот так я думал обмен осуществить.. Всёёё, понял, спасибо) Дополнение твое помогло)
0
|
Kuzia domovenok
|
||||||
22.04.2012, 16:32 | #8 | |||||
pre->next=current->next;
current->next=current->next->next; pre->next->next=current;
1
|
22.04.2012, 16:32 | |
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
|
22.04.2012, 16:32 |
Привет! Вот еще темы с ответами:
8
Сортировка списка - C++ Сортировка списка - C++
Сортировка списка - C++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |