![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
Rocket |
![]()
Сообщение
#1
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 306 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
Возникла проблема с сортировкой, суть которой заключается в следующем:
допустим, наш изначальный массив 3 7 4 1 8 3 3 5 9 1. Строится бинарное дерево, на следующий уровень идут 3 1 3 3 1, то есть соседние числа сравниваются, дальше идет наименьший элемент. Следующие уровни: 1 3 1, 1 1 1 В конце остаётся 1, она отправляется в отсортированный массив (в данном случае на первое место), а из начального массива отбрасывается (заменяется на бесконечность). Вобщем, в этом суть, преподаватель назвал его "турнирной" сортировкой, но это явно не "пирамидальная-турнирная-HeapSort" сортировка, преведённая на форуме. Вот мой код:
Тестировал я её на масивах в 10 элементов, всё четко работало и работает, а вот, когда перешёл к практике(массив в 100 элементов), возникла ошибка - тупо выкидывает из программы... в чём проблема? |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата Но на экран выводятся совершенно не понятные значения Чего ж непонятные? Все понятно... Что просил - то и выводится... Смотри:Цитата Please, enter the down border! между начальным и сортированным - промежуточные, только не массивы, а числа... Потому что CL = 1 все время, и печатается только первый элемента массива.10 Please, enter the up border! 100 31 20 81 69 42 89 42 45 24 89 // Это - начальный массив 20 24 31 42 42 45 69 81 89 89 20 24 31 42 42 45 69 81 89 89 // Это - отсортированный 10| 20| 30| 40| 80| |
Rocket |
![]()
Сообщение
#3
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 306 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
Чего ж непонятные? Все понятно... Что просил - то и выводится... Смотри: между начальным и сортированным - промежуточные, только не массивы, а числа... Потому что CL = 1 все время, и печатается только первый элемента массива. Так вот и засада же, что результаты выводятся корректно, допустим при первом запуске, а потом начинают появляться какие-то громадные значения с минусом. Я скриншот добавил. Расположил функцию в нужных местах...
Эскизы прикрепленных изображений ![]() |
![]() ![]() |
![]() |
Текстовая версия | 19.06.2025 11:36 |