|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.11.2009, 02:43 | #1 |
Форумчанин
Регистрация: 30.03.2008
Сообщений: 392
|
самый быстрый метод сортировки, который расположит в порядке возврастания 50.000 чисел типа real
Не могли бы вы сказать самый БЫСТРЫЙ метод сортировки, который расположит в порядке возрастания элементы одномерного массива типа real, максимальное количество элементов 50 тысяч!
какое количество времени эта сортировка займет. И еще: если бы числа были типа integer, то сортировка намного быстрее бы проходила? Заранее спасибо!
Программирование - это великое искусство... Такое же как например и живопись!
|
13.11.2009, 04:10 | #2 |
Меркантильный кю
Участник клуба
Регистрация: 02.02.2008
Сообщений: 1,001
|
Ну вообще, в общем случае быстрее всего работают слияние, QSort, Heapsort - O(n*log(n)). Но если есть какие-то закономерности, то можно попробовать улучшить
С int можно было бы подсчётом, при условии, что диапазон возмохных значений не слишком большой
Росли вроде умными, выросли дурнями... (c)А.Васильев
|
13.11.2009, 07:01 | #3 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Метод Шелла дает хорошие результаты... Да Интеджер сортировался бы быстрей, насколько можно проверить опытным путем, здесь математические выкладки не дадут точного результата.
Примеры - http://alglib.sources.ru/sorting/shellsort.php
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика Последний раз редактировалось Utkin; 13.11.2009 в 07:34. |
13.11.2009, 11:28 | #4 |
Форумчанин
Регистрация: 10.10.2009
Сообщений: 680
|
|
13.11.2009, 12:56 | #5 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
13.11.2009, 13:10 | #6 |
Форумчанин
Регистрация: 10.10.2009
Сообщений: 680
|
Быстрая сортирока - n*(log(n)). А Шелла хоть и имеет ряд преимуществ, большую стойкость и даже лучше для малого количества элементов, но фактически она имеет асимптотику повыше - начиная с, если не ошибаюсь, n^(1.1(6)), и вверх, в зависимости от реализации.
|
13.11.2009, 13:18 | #7 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
А мне посоветовал Г. Шилдт . Теория и практика С++
Там речь шла о сравнении сортировки qsort и всех прочих . По Вашему в быстрой сортировке от реализации ничего не зависит? Не жульничайте.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика Последний раз редактировалось Utkin; 13.11.2009 в 13:40. |
21.11.2009, 20:42 | #8 |
Участник клубаДжуниор
Регистрация: 23.08.2008
Сообщений: 1,616
|
Методом пузырька такой массив сортируется примерно 20 секунд:
Код:
pushl $0x18E3DF6B
call ICQ |
21.11.2009, 20:50 | #9 |
Форумчанин
Регистрация: 10.10.2009
Сообщений: 680
|
Наверно, комп слабый Или оценка времени очень примерная. Должно работать не больше 15, думаю, примерно 10 секунд. Для 15 тысяч сортировка пузырьком укладываеться в секунду (мой "олимпиадный опыт"), так что, раз она квадратическая, то необходимо не больше (3.(3))^2, тоесть 11 с небольшим секунд.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Самый быстрый вид сортировки массива | Warnes | Свободное общение | 42 | 06.12.2009 16:02 |
Операции с разными типами чисел (real c integer не умножается!) | uvamosk | Помощь студентам | 10 | 21.05.2009 21:14 |
Какой самый быстрый метод заполнения массива, например двухмерного? | SkAndrew | Общие вопросы Delphi | 11 | 29.05.2008 13:23 |
Предложите самый быстрый алгоритм! | Gambler | Общие вопросы Delphi | 6 | 26.12.2006 22:44 |