![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 03.11.2008
Сообщений: 94
|
![]()
Прошу помочь с сортировкой односвязного списка. Пытаюсь подогнать под пузырек, сравниваю 2 соседних элемента списка, если их нужно поменять местами, то ищется номер, по которому эти звенья стоят в списке, потом по этим-же номерам ищутся сами звенья 0_о(да-да, шайтан алгоритм), и меняются указатели на данные, т.е сам указатель next остается в порядке. Вот пример...
Код:
|
![]() |
![]() |
#2 |
Пользователь
Регистрация: 26.02.2009
Сообщений: 51
|
![]()
Что не получается? Сортирнуть пузырьком, пустяковая задача. Я конечно в код не вникал, но еа первый взгляд функция sort_list использует чистый алгоритм сортировки методом пузырька??? Там, где происходит перестановка элементов, без каких-либо выкрутасов, и есть пузырек.
|
![]() |
![]() |
#3 |
Пользователь
Регистрация: 03.11.2008
Сообщений: 94
|
![]()
Но change_list перестанавилавет только 2 элемента с четко указанными номерами, а нужно сравнивать каждый с каждым и если уже меньше то менять по этим номерам
|
![]() |
![]() |
#4 |
Пользователь
Регистрация: 26.02.2009
Сообщений: 51
|
![]()
if (list->some_ptr->time < list->next->some_ptr->time)
а эта строчка что делает? |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 03.11.2008
Сообщений: 94
|
![]()
Ой, я извиняюсь, когда переделывал свою задачу под пример забыл видимо изменить. Там не time a num, но смысл в том что он сравнивает 2 соседних звена по числу num, если меньше меняет звенья местами
|
![]() |
![]() |
#6 |
Пользователь
Регистрация: 26.02.2009
Сообщений: 51
|
![]()
Так, вник в код и врзник вопрос - зачем нукжна функция find_elm?
номер элемента, у тебя, j, а поменнять надо с j+1: Код:
|
![]() |
![]() |
#7 |
Пользователь
Регистрация: 03.11.2008
Сообщений: 94
|
![]()
Все равно не сортирует, в добавок затирает часть звеньев
|
![]() |
![]() |
#8 |
Пользователь
Регистрация: 26.02.2009
Сообщений: 51
|
![]() Код:
|
![]() |
![]() |
#9 |
Пользователь
Регистрация: 03.11.2008
Сообщений: 94
|
![]()
Сравниваем соседние элементы, если меньше меняем, потом сдвигаем список на 1, если конец по жи возвращаемся в начало списка и.т.д...
|
![]() |
![]() |
#10 |
Пользователь
Регистрация: 26.02.2009
Сообщений: 51
|
![]()
Ошибочка в функции change_list
Код:
и Код:
|
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
сортировка списка | Cdevelop | Общие вопросы C/C++ | 4 | 23.03.2009 21:25 |
Сортировка списка | Gonzo | Помощь студентам | 5 | 11.03.2009 11:08 |
Сортировка списка... | Arkuz | Помощь студентам | 2 | 11.05.2008 00:53 |
Сортировка списка... | Arkuz | Компоненты Delphi | 4 | 03.05.2008 23:21 |
Сортировка списка | Александр из Перми | Microsoft Office Excel | 3 | 27.01.2007 22:46 |