![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 14 Всего: 62 |
В поддержку
А создавать массив на n (n можно побирать на основе какого-нибудь несложного анализа данных, если алгоритм позволяет что-нибудь спрогнозировать) больше предыдущего, перекладывать в него данные (через System.arraycopy(..)) и продолжать в нем? Как думаете долго будет? |
|||
|
||||
| nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
К чему споры о производительности? Не нравятся стандартный массив и ArrayList - берите LinkedList и радуйтесь. Чуть ли не холивор уже, чесслово.
Добавлено через 58 секунд В крайнем случае пишем реализацию списка сами - быстрее уже точно не будет, если вылизать. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
| LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Так же как это делается в том же ArrayList
По скорости массив выгодней. А раз он спокойно помещается в память, то и лишние заморочки с "Hashed Array Tree" ни к чему. Добавлено через 1 минуту и 9 секунд
Стандартные коллекции здесь не подойдут, т.к. boxing/unboxing займет большую часть времени работы алгоритма, не говоря уж о памяти. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
| nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
Ну, тогда как вариант:
Суть идеи в том, чтобы минимизировать операции выделения памяти (тут всё будет зависеть от совпадения partSize и разницы capacity в примере LSD) и копирования данных (у меня его вообще нет, зато есть постоянный каст от Object к int[]. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
| Vitaly333 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 6.11.2006 Где: Volgograd Репутация: 2 Всего: 2 |
LSD, так всё таки какой структурой из trove4j мне воспользоваться?
Функцию ensureCapacity ты выдрал из исходников ArrayList? Ну и напишу я такой класс - это же будет клон класса ArrayList! |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
1. Слегка модифицировал. 2. Нет не такой же, он будет работать с примитивными типами, а не с обертками. 3. Зачем тебе писать полнофункциональный класс, просто используй этот код для увеличения размера массива по мере необходимости. TIntArrayList -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 20 Всего: 54 |
Значительное время съедят ещё и операции new на каждый элемент. -------------------- ![]() ![]() |
|||
|
||||
| v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: 8 Всего: 56 |
Vitaly333, ваш алгоритм - это факторизация чисел (разложение на множители?).
можете привести начальные данные для параметров функции??
помоему оптимальным считается увеличение, когда масив заполнен более чем на 3/4. |
|||
|
||||
| Vitaly333 |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 6.11.2006 Где: Volgograd Репутация: 2 Всего: 2 |
Да это факторизация , только символическая а не численная!
Конечно могу.... вот ссылка на массивы IA и JA! Это тот пример о котором я писал в первом своем сообщении. N = 67500 |
||||
|
|||||
| v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: 8 Всего: 56 |
ого... А что значит символьная факторизация (или таки символическая) ? Добавлено через 18 секунд возможно можна как то оптимизировать сам алгоритм? |
|||
|
||||
| Vitaly333 |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 6.11.2006 Где: Volgograd Репутация: 2 Всего: 2 |
Символическая - это значит операции проводяться не над самими данными а над информацией которая позволяет получить доступ к этим данным! Массивы IA и JA как раз таки и есть та информация которая позволяет получить доступ к данным! Данные (вещественные числа) храняться в отдельном массиве размером равным размеру JA и в символической факторизации не принемают участия!
Вряд ли ... он и так оптимизированный! Очень быстро работает если использовать подходящие структуры данных. Это сообщение отредактировал(а) Vitaly333 - 22.1.2008, 16:47 |
||||
|
|||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |