|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
04.05.2009, 23:48 | #1 |
Пользователь
Регистрация: 03.11.2008
Сообщений: 94
|
Сортировка списка
Прошу помочь с сортировкой односвязного списка. Пытаюсь подогнать под пузырек, сравниваю 2 соседних элемента списка, если их нужно поменять местами, то ищется номер, по которому эти звенья стоят в списке, потом по этим-же номерам ищутся сами звенья 0_о(да-да, шайтан алгоритм), и меняются указатели на данные, т.е сам указатель next остается в порядке. Вот пример...
Код:
|
05.05.2009, 04:12 | #2 |
Пользователь
Регистрация: 26.02.2009
Сообщений: 51
|
Что не получается? Сортирнуть пузырьком, пустяковая задача. Я конечно в код не вникал, но еа первый взгляд функция sort_list использует чистый алгоритм сортировки методом пузырька??? Там, где происходит перестановка элементов, без каких-либо выкрутасов, и есть пузырек.
|
05.05.2009, 11:23 | #3 |
Пользователь
Регистрация: 03.11.2008
Сообщений: 94
|
Но change_list перестанавилавет только 2 элемента с четко указанными номерами, а нужно сравнивать каждый с каждым и если уже меньше то менять по этим номерам
|
05.05.2009, 13:24 | #4 |
Пользователь
Регистрация: 26.02.2009
Сообщений: 51
|
if (list->some_ptr->time < list->next->some_ptr->time)
а эта строчка что делает? |
05.05.2009, 13:34 | #5 |
Пользователь
Регистрация: 03.11.2008
Сообщений: 94
|
Ой, я извиняюсь, когда переделывал свою задачу под пример забыл видимо изменить. Там не time a num, но смысл в том что он сравнивает 2 соседних звена по числу num, если меньше меняет звенья местами
|
05.05.2009, 13:48 | #6 |
Пользователь
Регистрация: 26.02.2009
Сообщений: 51
|
Так, вник в код и врзник вопрос - зачем нукжна функция find_elm?
номер элемента, у тебя, j, а поменнять надо с j+1: Код:
|
05.05.2009, 14:08 | #7 |
Пользователь
Регистрация: 03.11.2008
Сообщений: 94
|
Все равно не сортирует, в добавок затирает часть звеньев
|
05.05.2009, 14:21 | #8 |
Пользователь
Регистрация: 26.02.2009
Сообщений: 51
|
Код:
|
05.05.2009, 14:28 | #9 |
Пользователь
Регистрация: 03.11.2008
Сообщений: 94
|
Сравниваем соседние элементы, если меньше меняем, потом сдвигаем список на 1, если конец по жи возвращаемся в начало списка и.т.д...
|
05.05.2009, 15:27 | #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 |