Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.05.2008, 10:59
Freak Freak вне форума
Прохожий
 
Регистрация: 05.05.2008
Сообщения: 10
Репутация: 10
По умолчанию сравнительный анализ различных методов сортировки целочисленных массивов

уважаемые, может кто чего сказать ?
может кто-то это уже делал, или есть примеры?

задача: разработать приложение для Windows в среде Delphi (c 2005-го),
реализующее сортировку массивов следующими прямыми методами:
- прямого включения;
- двоичного включения;
- прямого выбора;
- прямого обмена;
- пузырьковой сортировки;
- шейкерной сортировки;

специальные требования:
1. исходные данные для тестирования приложения подготовить в текстовых файлах.
2. результаты тестирования представить в элементах диалоговых форм.
3. каждый метод оформить в виде подпрограммы, включенной в модуль, не связанной с формой.

сложности следующие:
как реализуются эти методы сортировки на Delphi?
есть ли примеры процедур.
сравнение методов - каким образом реализовать сравнение - таймер какой-нибудь прикручивать?
тогда как это делать ?
Ответить с цитированием
  #2  
Старый 05.05.2008, 11:08
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Вот набрал я в гугле: "сравнительный анализ методов сортировки" и первой ссылкой было: Методы сортировки. Их сравнительный анализ - курсовая работа Читай
Ответить с цитированием
  #3  
Старый 05.05.2008, 11:15
Freak Freak вне форума
Прохожий
 
Регистрация: 05.05.2008
Сообщения: 10
Репутация: 10
По умолчанию

спасибо, мне сдавать 12-го
но там же Visual C++ ???
Ответить с цитированием
  #4  
Старый 05.05.2008, 12:38
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Ты бы уже определился что тебе надо: методику работы или готовую программу.
Ответить с цитированием
  #5  
Старый 05.05.2008, 12:54
Freak Freak вне форума
Прохожий
 
Регистрация: 05.05.2008
Сообщения: 10
Репутация: 10
По умолчанию

да, определился, нужны примеры процедур реализующие именно эти методы сортировки на Delphi, и наиболее простой и эффективный метод сравнения (или по времени работы, или по количеству итераций, может и то и другое)...

из примеров Threads не подходит
Изображения
Тип файла: jpg 1.jpg (32.3 Кбайт, 24 просмотров)

Последний раз редактировалось Freak, 05.05.2008 в 13:09.
Ответить с цитированием
  #6  
Старый 05.05.2008, 15:37
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Была такая книжуля - готовые алгоритмы для Delphi издательства ДМК, что-ли (не помню точно как, я ее отредактировал в свое время и забыл).
Там если не все, то большинство методов есть.

По поводу самой проги - правильно ли я понимаю, что тебе надо просто загрузить массив целых чисел из внешнего текстового файла (формат по числу на каждой строке годится?), потом вызвать различные методы его сортировки, посчитать сколько заняло времени и в итоге вывести табличку с результатами?
Ответить с цитированием
  #7  
Старый 05.05.2008, 15:54
Freak Freak вне форума
Прохожий
 
Регистрация: 05.05.2008
Сообщения: 10
Репутация: 10
По умолчанию

lmikle,
готовые алгоритмы для Delphi - Род Стивенс ?
ага, пасиб, это есть у меня...

мне наверно достаточно просто прикинуть примеры именно этих алгоритмов, а обвеску, ввод-вывод я и сам наверно осилю....
хотя в программерстве - дуб-дубом....
Ответить с цитированием
  #8  
Старый 05.05.2008, 16:57
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от Freak
lmikle,
готовые алгоритмы для Delphi - Род Стивенс ?
ага, пасиб, это есть у меня...

мне наверно достаточно просто прикинуть примеры именно этих алгоритмов, а обвеску, ввод-вывод я и сам наверно осилю....
хотя в программерстве - дуб-дубом....

Ну, программку я написал (аттачед).
Правда там только один метод релизован (для примера) - пузырьки.
Если не поймешь как делать следующие, то пиши.
Там надо написать процку, сортирующую массив и в обработчике вызова сортировки указать ее.

пара замечаний:
1. Вывод массива на экран, почему-то работает достаточно долго, так что больше 1000 элементов не генерируй.
2. Там при вызове сортировщика это делается 1000 раз - это что бы было ощутимо, а то при единичном вызове при 1000 элементах у меня сортировка занимает 0 секунд.
3. Если нужна большая точности отсечки, то придется кое-что поменять. Сейчас считает в целых секундах.
Вложения
Тип файла: zip SortDemo.zip (5.1 Кбайт, 57 просмотров)
Ответить с цитированием
  #9  
Старый 05.05.2008, 17:05
Freak Freak вне форума
Прохожий
 
Регистрация: 05.05.2008
Сообщения: 10
Репутация: 10
По умолчанию

lmikle, пасиб, изучаю...
я за основу взял пример в поставке Delphi - Threads,
там основная обвеска вполне подходит
Ответить с цитированием
  #10  
Старый 05.05.2008, 17:05
Freak Freak вне форума
Прохожий
 
Регистрация: 05.05.2008
Сообщения: 10
Репутация: 10
По умолчанию

lmikle, пасиб,

супер, пузырек на 10 000 элементах даёт 15 сек, класс !!!

если до вечера нарою остальные алгоритмы, постараюсь вставить,

здоровско !!!!

ещё вирта и кнута лопатить

Последний раз редактировалось Freak, 05.05.2008 в 17:10.
Ответить с цитированием
  #11  
Старый 05.05.2008, 17:46
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ты понял как добавлять сортировки?
Я там просто воспользовался механизмом калбэков, что бы один и тот же код несколько раз не писать...
и вывод сделал по простому (ну лень, матушка, обуяла)
Ответить с цитированием
  #12  
Старый 05.05.2008, 18:00
Freak Freak вне форума
Прохожий
 
Регистрация: 05.05.2008
Сообщения: 10
Репутация: 10
По умолчанию

да примерно вник, попробую сам добавить шейкерный алгоритм...
механизм калбэков - перевел, но не понимаю, для меня это кабаллистика сплошная....
Ответить с цитированием
  #13  
Старый 05.05.2008, 18:27
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

CallBack - это значит я передаю в процедуру указатель на какую-либо функцию/процедуру, которая там и вызывается в итоге. Т.е. для приведенного кода основной фокус в том, что собственно сортировка находится в одной процке, а разные обкладки, в т.ч. засечки времени и т.п. - в другой.
Ответить с цитированием
  #14  
Старый 05.05.2008, 18:36
Freak Freak вне форума
Прохожий
 
Регистрация: 05.05.2008
Сообщения: 10
Репутация: 10
По умолчанию

а это я понял, мне так и надо - на каждый метод - свою процедуру...
тут умные люди подсказывают что для разных вариантов сортировки одного и того же массива надо не время считать, а количество итераций, что значительно проще и достовернее показывает преимущества методов....

я про этот пример говорил выше...
Вложения
Тип файла: zip Threads.zip (9.5 Кбайт, 37 просмотров)

Последний раз редактировалось Freak, 05.05.2008 в 19:15.
Ответить с цитированием
  #15  
Старый 05.05.2008, 19:23
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну поставь счетчик внутри цикла, а саму процку переделай в функцию, которая счетчик и вернет.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:51.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025