![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 | |
Пользователь
Регистрация: 31.01.2009
Сообщений: 26
|
![]()
Здравствуйте! Пишу программу, реализующую различные методы сортировок.
Застрял на методе быстрой сортировки, а именно при добавлении в процедуру подсчета числа сравнений и перестановок. Компилятор выводит вот такие ошибки: Цитата:
Код программы можно посмотреть тут. (в сообщение не влез, т.к. превышен лимит символов). Сам проект также прикладываю: sort.rar Заранее благодарен за помощь! |
|
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Код:
Код:
Найди отличия ![]()
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 31.01.2009
Сообщений: 26
|
![]()
Тогда получается так (sort.rar).
Теперь возникают ошибки при вызове функции: Цитата:
UPD: Исправлено, смотреть следующее сообщение. Последний раз редактировалось koshkarjov; 17.09.2012 в 21:16. |
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
![]()
Еще б примерно представить, как должно выглядеть, чтоб понять, что в коде искать.
UPD. Сорри, строчку снизу не заметил...
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
![]()
Судя по трассировке, у Вас в методе QuickSort вот тут цикл проходит в два раза больше, чем нужно (чем элементов в массиве)6
Код:
UPD. Хотя сдается мне, что должно быть так: Код:
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Последний раз редактировалось Sciv; 17.09.2012 в 21:49. |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 31.01.2009
Сообщений: 26
|
![]()
Если я правильно понял, то так?
Код:
![]() ![]() |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
![]()
Понятно... Предыдущий вариант (который с High(a)) работал лучше, возвращаем его обратно.
А увеличение данных у Вас берется из-за рекурсивного вызова QuickSort. Вместо передачи в рекурсию ToShow сделайте так: Код:
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 31.01.2009
Сообщений: 26
|
![]()
Sciv, спасибо! Теперь выводит корректно.
Но мне кажется, что число сравнений и перестановок (Cmp и Sw) не работает как надо. Например, при массиве чисел 10000, число сравнений=0, а число перестановок=1. Вроде же не должно так быть? |
![]() |
![]() |
![]() |
#10 | |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
![]() Цитата:
Код:
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Последний раз редактировалось Sciv; 18.09.2012 в 12:35. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[Delphi] сортировка массива | Arlain | Помощь студентам | 0 | 06.05.2012 10:46 |
Сортировка массива в Delphi | Ника_1 | Помощь студентам | 6 | 13.11.2011 02:48 |
Сортировка массива(Delphi 3.0) | SUMR04 | Помощь студентам | 0 | 16.12.2009 19:09 |
Delphi. Сортировка массива | eluminat | Помощь студентам | 4 | 30.06.2009 11:55 |