Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 
Вернуться
Тема: Вопрос программирующим на Java! Я заметил, что минимальное время выполнения не ниже 300мс =( Почему так? Или такая вот уж эта Java? Не думаю конечно, что она сможет тягаться с C++, но всетаки, может кто знает какие-нибудь способы уменьшения этого числа? =) Или это время инициализации Jav'ки?
1
  1  Орынбаев Хусаин Рамазанович, 29 января 2011 г. 18:23:29
      я пару месяцев назад задавался такими же вопросами
хотя я с языком Java не сильно знаком, тем не менее язык конешно же "тормоз", по сравнению с C++, хотя иногда код короче получается на первом, ибо в C++ не встроена ДА, как заметил Мирный,

на мой взгляд это в основном из за того что на яве длинка хранится в стринге, а на сишке можно реализовывать насколько хватит фантазии(иногда приходилось изворачиваться до системы счисления что то типа 1000000000)

ну и из решения задач на длинную арифметику именно на этом сайте я понял что на численных массивах как правило работа происходит быстрее нежели на символьных массивах\строках
  2  Демиденко Виталий, 23 января 2011 г. 17:36:58
      Там не совсем двоичная, там какая-то степень двойки
  3  Нигматуллин Нияз Габдуллазянович [СПбГУ ИТМО], 20 января 2011 г. 16:21:51
      > но есть задачи, когда такого времени хватает впритык и было, что решение на Java не проходит, а то же спмое на С++ с использованием длинной арифметики прокатывает.

Чтобы такого избежать, нужно лучше знать язык. Не так просто на С++ написать длинную арифметику быстрее чем в Java. Например перевод из строки в BigInteger и наоборот, работает за квадрат от длины числа, потому что BigInteger хранит числа в двоичной системе счисления.
  4  Мирный, 19 января 2011 г. 19:17:04
      Java сама по себе медленная, на некоторых олимпиадах для решений на Java выделяют в 1,5-2 раза больше времени, чем для решений на других языках. Перед условием задачи в графе ограничение по времени было указано время, за которое программа должна пройти тест, а рядом в скобочках указано ещё одно время с пометкой что это для Java.
Такое видел всего пару раз, т.к. в большинстве случаев выделенного времени с лихвой хватает, если алгоритм выбран правильно, но есть задачи, когда такого времени хватает впритык и было, что решение на Java не проходит, а то же спмое на С++ с использованием длинной арифметики прокатывает.
1

Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!

Красноярский краевой Дворец пионеров, (c)2006 - 2026, ИНН 246305493507, E-mail: admin@acmp.ru