0 / 0 / 1
Регистрация: 22.02.2018
Сообщений: 31
|
||||||
1 | ||||||
Сортировка односвязного списка17.06.2018, 17:16. Показов 9569. Ответов 10
Метки нет (Все метки)
Доброго времени суток. Третий день пытаюсь понять как мне отсортировать сведения структуры, упорядоченные по какому-либо критерию.
Допустим стоит задача отсортировать по годам. Не понимаю как мне сравнивать между собой элементы списка. Тут же нет такого как в обычной структуре, например, Lib[i].year. Как сравнивать динамический список? Или ошибка в том, что я пытаюсь применить логику как для структуры, перемещая элементы? Полазил по форуму, ничего подобного не нашел в разделе С++. Вот последняя форма кода:
0
|
17.06.2018, 17:16 | |
Ответы с готовыми решениями:
10
Сортировка односвязного списка Сортировка односвязного списка Сортировка односвязного списка Сортировка односвязного списка |
189 / 174 / 93
Регистрация: 13.06.2018
Сообщений: 718
|
||||||
17.06.2018, 17:36 | 2 | |||||
0
|
309 / 221 / 74
Регистрация: 23.05.2011
Сообщений: 981
|
|
17.06.2018, 17:57 | 3 |
Можешь делать как в Java: копируешь сначала всё в массив, сортируешь массив, и копируешь обратно
0
|
0 / 0 / 1
Регистрация: 22.02.2018
Сообщений: 31
|
|||||||||||
19.06.2018, 03:25 [ТС] | 4 | ||||||||||
Есть два варианта, которые почти работают, но не до конца.
Первый работает и сортирует, но только два элемента, т.к. там нет обмена значений:
" использована неинициализированная локальная переменная "temp" "
0
|
Вездепух
12792 / 6669 / 1795
Регистрация: 18.10.2014
Сообщений: 16,877
|
|
19.06.2018, 04:06 | 5 |
"Сортировка списка" может подразумевать два принципиально/фундаментально различных действия:
1) обмен значений между элементами списка с целью достижения упорядоченности списка 2) изменение порядка сцепки элементов в списке с целью достижения упорядоченности списка Вам сначала надо определиться, какой из способов сортировки вам нужно реализовать. Это попытка реализовать первый вариант. Вам точно нужно именно это?
0
|
0 / 0 / 1
Регистрация: 22.02.2018
Сообщений: 31
|
|
19.06.2018, 10:37 [ТС] | 6 |
Это потому что я пытался действовать по логике сортировки обычных массивов, уже осознал что нужно отойти от этих мыслей.
Второй вариант более привлекателен, думаю он даже более правильный, но хочу знать как реализовать оба варианта)
0
|
71 / 58 / 48
Регистрация: 12.03.2017
Сообщений: 563
|
|
19.06.2018, 11:22 | 7 |
Если речь пойдет о производительности ПП , то твой вариант затратит много времени на лишние действия
Добавлено через 4 минуты А что ты хотел? Ты её создал , но ничем не заполнил, и пытаешься взять данные от туда, раз там ничего нет, то и он даст тебе ошибку. Добавлено через 5 минут Это локальная переменная, и если ты пытаешься обратиться к ней из вне функции в которой она объявлена то не получится , объяви её как глобальную.
0
|
838 / 641 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
|
||||||
19.06.2018, 18:01 | 8 | |||||
Сообщение было отмечено Newbie_MTF как решение
Решение
1
|
309 / 221 / 74
Регистрация: 23.05.2011
Сообщений: 981
|
|
20.06.2018, 23:00 | 9 |
Разумеется. Поэтому я знатно прифигел, когда увидел этот код в исходниках Java 8.
0
|
0 / 1 / 0
Регистрация: 26.04.2018
Сообщений: 20
|
||||||
20.06.2018, 23:33 | 10 | |||||
Может я чего то не понимаю ? Но что мешает отсортировать список обычным пузырьком. Например я пару дней назад писал курсовую и там отсортировал список по определенному параметру именно старым добрым пузырьком.
Вот отрывок кода:
0
|
0 / 0 / 1
Регистрация: 22.02.2018
Сообщений: 31
|
|
21.06.2018, 11:56 [ТС] | 11 |
То что для работы с блоками, по типу списка, нужно менять их адреса при сортировке, а не доставать данные из них и менять их местами.
0
|
21.06.2018, 11:56 | |
21.06.2018, 11:56 | |
Помогаю со студенческими работами здесь
11
Сортировка односвязного списка Сортировка односвязного списка Сортировка односвязного списка Сортировка односвязного списка пузырьком Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |