Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Множества, хэши и т.д. 
V
    Опции темы
Bogdan1024
  Дата 24.7.2007, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: 5
Всего: 13



Вот иногда есть много всяких int'ов, и нужно их всех запомнить. Можно применить для этого Arraylist, но мсдн говорит что он медленный, можно применить для этого хэш-коллекцию (забыл как называется), но там ненужное свойство "Value" есть. Что использовать оптимальнее всего?


--------------------
user posted image
PM MAIL   Вверх
Idsa
Дата 24.7.2007, 13:13 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 14
Всего: 62



Если ты уверен, что такой подход не доставит тебе проблем при отладке, а затем и при поддержке проекта (с символьными переменными гораздо проще разбираться, нежели с записями вроде list[5]), то следует использовать List<int>. Он и быстрее ArrayList, да и проверку типов осуществляет на этапе компиляции.


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Bogdan1024
Дата 24.7.2007, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: 5
Всего: 13



Ну, я под ArrayList имел List<int> ввиду smile


--------------------
user posted image
PM MAIL   Вверх
Idsa
Дата 24.7.2007, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 14
Всего: 62



Цитата(Bogdan1024 @  24.7.2007,  13:03 Найти цитируемый пост)
Можно применить для этого Arraylist, но мсдн говорит что он медленный

Цитата(Bogdan1024 @  24.7.2007,  14:33 Найти цитируемый пост)
Ну, я под ArrayList имел List<int> ввиду 

Ну и почему тогда он медленный?


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Bogdan1024
Дата 24.7.2007, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: 5
Всего: 13



При поиске значений хэш<int> теоретически быстрее. Дык вот я и думаю, а есть ли что-то быстрее хэша и эрэйлиста.


--------------------
user posted image
PM MAIL   Вверх
mihryak
Дата 24.7.2007, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 731
Регистрация: 28.4.2007
Где: С-Пб

Репутация: 19
Всего: 36



Для хешируемых коллекций (SortedList, Dictionary, HashTable) помимо самого значения нужен ключ, причём уникальный. Если int-ы удовлетворяют этому требованию, то можно идля ключа использовать то же значение. Выгода будет в случае необходимости часто производить поиск по коллекции (занимает всегда О(1), при этом, если разумно задать Capacity, то и добавление будет тоже О(1)).

Иначе - List<int>. Про медленность - очень спорно, хоть поиск "в лоб" и занимает О(n), но обращение к элементам и их добавление  практически такое же, как и у массивов (он на базе массива и сделан, просто обернули удобными методами и автоматическим расширением).
PM MAIL ICQ   Вверх
kven
Дата 5.12.2007, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 5.12.2007

Репутация: 1
Всего: 1



У меня такой вопрос. Если использовать просто ArrayList добавление какая сложность
удаление какая сложность максимум естественно. И поиск.
И насколько быстрее это в List<int>.
Просто у меня задача которая требует количество итераций не более log(n). Насколько возможно такая реализация.

И ещё 1 вопрос. При исползования нумератора для коллекции. Если я удаляю элемент с первой позиции это занимает O(1) шаг в arrayList или максимум O(n)?
Буду благодарен за ответы, чем быстрее тем лучше
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0888 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.