|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
12.10.2013, 19:05 | #1 |
Несчастный студент
Пользователь
Регистрация: 31.03.2013
Сообщений: 52
|
C++ сравнение методов сортировки одномерного массива и таймер
Здравствуйте.
Помогите, пожалуйста, решить задачу по программированию: Провести сравнительный анализ как минимум трех методов сортировки одномерного массива по различным критериям и определить наиболее эффективный метод сортировки, указать, по каким критериям этом метод является наиболее эффективным и почему именно эти критерии наиболее важны для анализа. Начала решать задачу с самой простой сортировки - пузырьковой. Хоть убейте, другие сортировки я не понимаю! (непонятен сам алгоритм). Но на текущий момент проблема даже не в этом. Дело в том, что я пытаюсь засечь время выполнения пузырьковой сортировки малого массива из 15 элементов. Оно равно нулю. Я пробовала разные способы, но результат такой: либо 0, либо не компилируется. Программу пишу c помощью Visual Studio. Код:
|
12.10.2013, 20:14 | #2 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,499
|
Может быть массив маловат. Слишком быстро сортируется, бистрее, чем 1 " клок ".
Чему там у Вас равно CLOCKS_PER_SEC ? Я C++ почти совсем не знаю. Но чисто ради интереса сравнивал разные методы сортировки на Delphi. Использовал тип TDateTime. Тоже иногда получался 0, приходились один и тот же массив сортировать по многу раз, чтобы получить время. Например, методом пузырька массив в 10 элементов - 0.0000045 секунд, в 30 элементов - 0.000035, .... в 3000 элементов - 0,32 сек. Цифры разные получались, даже если постоянно брать тот же массив. От загрузки процессора наверное зависит. |
13.10.2013, 11:11 | #3 |
Несчастный студент
Пользователь
Регистрация: 31.03.2013
Сообщений: 52
|
А пробовала с разными размерностями массива, но результат один. При выводе на экран значений start и stop они оба равны 109.
Только когда я отладку запускаю, тогда у меня ответ получается отличным от нуля. Последний раз редактировалось Bitter_Schokolade; 13.10.2013 в 11:21. |
13.10.2013, 12:26 | #4 |
Несчастный студент
Пользователь
Регистрация: 31.03.2013
Сообщений: 52
|
Добавила в код сортировку вставками (вроде правильно, могу ошибаться)
Время исполнения сортировки равно нулю в обоих случаях. Код:
|
13.10.2013, 13:01 | #5 |
Форумчанин
Регистрация: 22.05.2012
Сообщений: 352
|
|
13.10.2013, 15:01 | #6 |
Несчастный студент
Пользователь
Регистрация: 31.03.2013
Сообщений: 52
|
Отсчет в секундах? А в 10^-3 сек как сделать?
Последний раз редактировалось Bitter_Schokolade; 13.10.2013 в 15:06. |
13.10.2013, 18:13 | #7 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,499
|
Bitter_Schokolade, все таки Вы недооцениваете быстроедействие нонешних компьютеров. Особенно с целочисленными массивами. В то время, когда космические корабли бороздят просторы ...
rlib, 3 Мбайта - это конечно слишком. У сортировки время обычно пропорционально квадрату объема массива. Код:
И результат: |
13.10.2013, 18:13 | #8 |
Форумчанин
Регистрация: 22.05.2012
Сообщений: 352
|
С помощью АНСИ Ц вам не удасться получить временную резолюцию больше секунды. Смотрите time.h..
Решений 2. Либо возьмите больший массив, чтобы потратить больше, чем 1 сек на сортировку. Либо пользуйте системные функции (под Винду или Линукс, в зависимости, где запускаете прогу) для большей резолюции по времени. |
13.10.2013, 18:28 | #9 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Вот пользуйтесь. Пример программы сортировки.
Код:
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder Последний раз редактировалось Smitt&Wesson; 13.10.2013 в 18:37. |
13.10.2013, 18:38 | #10 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,499
|
Кстати, чтобы rand каждый раз выдавала разные значения, надо еще вызывать srand.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Разработать программу сортировки одномерного массива методом двоичного включения | Lera_94 | Помощь студентам | 0 | 02.05.2013 15:42 |
Блок-схема сортировки одномерного массива | roperd | Общие вопросы Delphi | 1 | 11.12.2011 11:12 |
сортировки одномерного массива целых чисел методом подсчета сравнений [Паскаль] | sm0ker | Помощь студентам | 13 | 16.12.2010 22:40 |
Алгоритм сортировки одномерного массива | JOFRIF | Общие вопросы C/C++ | 4 | 19.07.2009 17:23 |