Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Массивы и т.д. / 11 сообщений из 11, страница 1 из 1
26.06.2004, 14:39
    #32578604
smathcopm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массивы и т.д.
Возможно ли проверить без цикла: является ли данный элемент равным одному из элементов массива. (чтобы не проверять является ли каждый поочереди элемент массива равным данному элементу - пытаюсь увеличить скорость программы)
...
Рейтинг: 0 / 0
26.06.2004, 16:14
    #32578623
НЕ СКАЖУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массивы и т.д.
Нельзя. Если найдешь какую-то ф-ию, то она делает это так же.
Здесь два варианта для оптимизации.
1. Делать поиск быстрым алгоритмом. Например SQL Server в 100000 записей может найти искомую за 21 шаг.
Описание алгоритмов поиска смотри на www.rsdn.ru
2.Использовать карты(нечто похожее на коллекции). Это как бы массив, индексами которого могут быть числа, буквы. Таким образом можешь делать индекс, который соотвествует элементу под этим индексом. И если хочешь найти элемент зная его значение, то ты знаешь что этот элемент лежит под индексом, который имеет тоже такое значение, которое ищешь
...
Рейтинг: 0 / 0
26.06.2004, 17:59
    #32578651
B0rG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массивы и т.д.
Попробуй Hashtable?

Cheers
Pete
...
Рейтинг: 0 / 0
27.06.2004, 15:14
    #32578806
smathcopm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массивы и т.д.
Спасиб.
Hashtable - рулез :)
...
Рейтинг: 0 / 0
29.06.2004, 11:04
    #32580540
viper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массивы и т.д.
Вообще советую посетить домашнюю страницу С# на msdn.com. Там цела серия статей посвещенных спискам, деревьям и т.д. как по мне очень качественно... и примеры есть.
_________________________________________________
Легче написать не правильную программу чем понять правильную (С) Alan Perlis
...
Рейтинг: 0 / 0
29.06.2004, 21:11
    #32582158
mikhail_n
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массивы и т.д.
...
Рейтинг: 0 / 0
29.06.2004, 21:31
    #32582170
mikhail_n
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массивы и т.д.
Блин, опять не удержался, но это уж что-то: hashtables, maps, lists, B-trees etc... Да прежде чем всем этим пользоваться, его ж создать нужно! А то автор"...Например SQL Server в 100000 записей может найти искомую за 21 шаг..." Он что, на неиндексированном поле может это? А сколько стоит отсортировать массив? N*Log(N) операций если с умом. А просто прочесть - N. Так что быстрее то? Что то я не помню, чтобы автор этого топика где-либо говорил что его массив изначально отсортирован. Так что перестаньте морочить человеку голову - на несортированном массиве для поиска одного элемента ничего быстрее простого перебора нет. Вот если поиск необходимо производить многократно (для разных элементов), то тогда да, есть смысл подумать о сортировке в какой-либо форме.
...
Рейтинг: 0 / 0
30.06.2004, 01:31
    #32582267
smathcopm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массивы и т.д.
2ikhail_n. Понимаешь ли массив изначально составляется из файла при запуске программы, построчно. Поэтому для меня нет особой разницы, буду я составлять при загрузке массив типа array или hashtable или еще что-нибудь - для работы с этим хозяйством в дальнейшем нет никаких ограничений. Так что именно такие советы мне были и нужны...
Да, и работа с hashtable значительно быстрее array.
А вопрос я может быть и некорректно задал, но лишь по незнанию: думал реализуема через обычный массив.

Однако проблема остаётся открытой - в hashtable есть один совершенно неприятный момент: если я уже узнал, что нужный мне элемент находится в этой "хеш-таблице", я не могу определить чему равен key соотетствующий этому элементу (value), ну или хотя бы его порядковый номер - а это критично. :-(
Но всеравно спасибо...
...
Рейтинг: 0 / 0
30.06.2004, 14:53
    #32583502
B0rG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массивы и т.д.
Добавь свой кей. Насколько я понимаю, положение элементов в хештаблице не детерминировано. Там рядом с хештаблицей (по моему в System.Collections) есть еще куча классов с похожими свойствами, может быть один из них тебе и подойдет.

Cheers
Pete
...
Рейтинг: 0 / 0
30.06.2004, 17:18
    #32583907
Ustazz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массивы и т.д.
System.Collections.SortedList :)
...
Рейтинг: 0 / 0
30.06.2004, 17:58
    #32584012
viper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массивы и т.д.
Хотя на больштх объкмах данных могут быть конкретные тормоза... благодаря преобразованию из Object... Если скорость критична, надо чет другое изобретать....
_________________________________________________
Легче написать не правильную программу чем понять правильную (С) Alan Perlis
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Массивы и т.д. / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]