![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() уважаемые, может кто чего сказать ?
может кто-то это уже делал, или есть примеры? задача: разработать приложение для Windows в среде Delphi (c 2005-го), реализующее сортировку массивов следующими прямыми методами: - прямого включения; - двоичного включения; - прямого выбора; - прямого обмена; - пузырьковой сортировки; - шейкерной сортировки; специальные требования: 1. исходные данные для тестирования приложения подготовить в текстовых файлах. 2. результаты тестирования представить в элементах диалоговых форм. 3. каждый метод оформить в виде подпрограммы, включенной в модуль, не связанной с формой. сложности следующие: как реализуются эти методы сортировки на Delphi? есть ли примеры процедур. сравнение методов - каким образом реализовать сравнение - таймер какой-нибудь прикручивать? тогда как это делать ? |
#2
|
||||
|
||||
![]() Вот набрал я в гугле: "сравнительный анализ методов сортировки" и первой ссылкой было: Методы сортировки. Их сравнительный анализ - курсовая работа Читай
![]() |
#3
|
|||
|
|||
![]() спасибо, мне сдавать 12-го
![]() но там же Visual C++ ??? |
#4
|
||||
|
||||
![]() Ты бы уже определился что тебе надо: методику работы или готовую программу.
|
#5
|
|||
|
|||
![]() да, определился, нужны примеры процедур реализующие именно эти методы сортировки на Delphi, и наиболее простой и эффективный метод сравнения (или по времени работы, или по количеству итераций, может и то и другое)...
из примеров Threads не подходит Последний раз редактировалось Freak, 05.05.2008 в 13:09. |
#6
|
|||
|
|||
![]() Была такая книжуля - готовые алгоритмы для Delphi издательства ДМК, что-ли (не помню точно как, я ее отредактировал в свое время и забыл).
Там если не все, то большинство методов есть. По поводу самой проги - правильно ли я понимаю, что тебе надо просто загрузить массив целых чисел из внешнего текстового файла (формат по числу на каждой строке годится?), потом вызвать различные методы его сортировки, посчитать сколько заняло времени и в итоге вывести табличку с результатами? |
#7
|
|||
|
|||
![]() lmikle,
готовые алгоритмы для Delphi - Род Стивенс ? ага, пасиб, это есть у меня... мне наверно достаточно просто прикинуть примеры именно этих алгоритмов, а обвеску, ввод-вывод я и сам наверно осилю.... хотя в программерстве - дуб-дубом.... ![]() |
#8
|
|||
|
|||
![]() Цитата:
Ну, программку я написал (аттачед). Правда там только один метод релизован (для примера) - пузырьки. Если не поймешь как делать следующие, то пиши. Там надо написать процку, сортирующую массив и в обработчике вызова сортировки указать ее. пара замечаний: 1. Вывод массива на экран, почему-то работает достаточно долго, так что больше 1000 элементов не генерируй. 2. Там при вызове сортировщика это делается 1000 раз - это что бы было ощутимо, а то при единичном вызове при 1000 элементах у меня сортировка занимает 0 секунд. 3. Если нужна большая точности отсечки, то придется кое-что поменять. Сейчас считает в целых секундах. |
#9
|
|||
|
|||
![]() lmikle, пасиб, изучаю...
я за основу взял пример в поставке Delphi - Threads, там основная обвеска вполне подходит ![]() |
#10
|
|||
|
|||
![]() lmikle, пасиб,
супер, пузырек на 10 000 элементах даёт 15 сек, класс !!! если до вечера нарою остальные алгоритмы, постараюсь вставить, здоровско !!!! ещё вирта и кнута лопатить ![]() Последний раз редактировалось Freak, 05.05.2008 в 17:10. |
#11
|
|||
|
|||
![]() Ты понял как добавлять сортировки?
Я там просто воспользовался механизмом калбэков, что бы один и тот же код несколько раз не писать... и вывод сделал по простому (ну лень, матушка, обуяла) ![]() |
#12
|
|||
|
|||
![]() да примерно вник, попробую сам добавить шейкерный алгоритм...
механизм калбэков - перевел, но не понимаю, для меня это кабаллистика сплошная.... |
#13
|
|||
|
|||
![]() CallBack - это значит я передаю в процедуру указатель на какую-либо функцию/процедуру, которая там и вызывается в итоге. Т.е. для приведенного кода основной фокус в том, что собственно сортировка находится в одной процке, а разные обкладки, в т.ч. засечки времени и т.п. - в другой.
|
#14
|
|||
|
|||
![]() а это я понял, мне так и надо - на каждый метод - свою процедуру...
тут умные люди подсказывают что для разных вариантов сортировки одного и того же массива надо не время считать, а количество итераций, что значительно проще и достовернее показывает преимущества методов.... я про этот пример говорил выше... Последний раз редактировалось Freak, 05.05.2008 в 19:15. |
#15
|
|||
|
|||
![]() Ну поставь счетчик внутри цикла, а саму процку переделай в функцию, которая счетчик и вернет.
|