Форум: "Начинающим";
Текущий архив: 2007.12.30;
Скачать: [xml.tar.bz2];
Внизбыстрая выборка из кучи Найти похожие ветки
← →
brother (2007-12-07 11:44) [0]Приветствую!
Есть такой вопрос: есть массив arr:array[0..10000] of pchar
длина pchar =10 байт.
как организовать БЫСТРЫЙ поиск n строчки содержащейся в массиве?
Перебором долго, других идей пока не нашел...
буду благодарен за любую информацию...
← →
Сергей М. © (2007-12-07 11:47) [1]
> других идей пока не нашел
И не найдешь.
В данной ситуации только перебор и ничто более.
← →
Anatoly Podgoretsky © (2007-12-07 12:02) [2]> brother (07.12.2007 11:44:00) [0]
Отсортировать массив по содержимому строк, тогда можно будет использовать быстрые методы поиска.
← →
brother (2007-12-07 12:05) [3]спасибо, но сортировать 50000 строк не долговато ли?
← →
Сергей М. © (2007-12-07 12:06) [4]
> brother
А еще лучше выкинуть нафих этот массив и использовать TStringList - там и сортировочка (см.[2]) встроенная имеется и методы поиска готовые.
← →
brother (2007-12-07 12:06) [5]с БД выборка будет быстрее?
← →
Anatoly Podgoretsky © (2007-12-07 12:07) [6]> brother (07.12.2007 12:05:03) [3]
Тогда забей
← →
Сергей М. © (2007-12-07 12:08) [7]
> сортировать 50000 строк не долговато ли?
А не многого ли ты хочешь сразу ?)
Тебе, вишь ли, и поиск быстрый подавай и чтобы без сортировки)..
← →
Anatoly Podgoretsky © (2007-12-07 12:08) [8]Кстати а как ты умудрился без AV поместить 50000 элементов в массив array[0..10000] ?
← →
Сергей М. © (2007-12-07 12:09) [9]
> с БД выборка будет быстрее?
И не надейся даже - без сортировки будет такая же, только еще тягомотней
← →
brother (2007-12-07 12:10) [10]TStringList поддерживает pchar?
или предлагаете преобразовывать символ на подобие #13 в стринг?
не гемморой?
← →
brother (2007-12-07 12:14) [11]Anatoly Podgoretsky © (07.12.07 12:08) [8]
Кстати а как ты умудрился без AV поместить 50000 элементов в массив array[0..10000] ?
10000, 50000 это например)
> с БД выборка будет быстрее?
И не надейся даже - без сортировки будет такая же, только еще тягомотней
а причем тут сортировка в БД??? select и все...
← →
Сергей М. © (2007-12-07 12:17) [12]
> TStringList поддерживает pchar?
А тебе какая разница, поддерживает или не поддерживает ? Строка она и в Африке строка)
Откуда у тебя pchar"ы взялись изначально ? Почему не string"и ?
← →
Сергей М. © (2007-12-07 12:19) [13]
> причем тут сортировка в БД??? select и все
А индексы - они что, с Луны сваливаются ? Они и есть рез-ты сортировки, которые явно или неявно участвуют в этом самом "select и все".
А без индексов такая БД - что мертвому припарка)
← →
brother (2007-12-07 12:20) [14]Сергей М. © (07.12.07 12:17) [12]
> TStringList поддерживает pchar?
А тебе какая разница, поддерживает или не поддерживает ? Строка она и в Африке строка)
Откуда у тебя pchar"ы взялись изначально ? Почему не string"и ?
именно pchar мне все символы нужны (непечатные тоже), читаю из файла) а байт и в африка байт)
← →
umbra © (2007-12-07 12:22) [15]
> или предлагаете преобразовывать символ на подобие #13 в
> стринг?
а что мешает? туда можно любой символ засунуть
← →
brother (2007-12-07 12:23) [16]Сергей М. © (07.12.07 12:19) [13]
> причем тут сортировка в БД??? select и все
А индексы - они что, с Луны сваливаются ? Они и есть рез-ты сортировки, которые явно или неявно участвуют в этом самом "select и все".
А без индексов такая БД - что мертвому припарка)
Индексы это естественно, но может выборка из БД быстрее будет, нежели я сам ее придумаю... люди СУБД уже давно написали может и за скорость поборолись?)
← →
brother (2007-12-07 12:24) [17]umbra © (07.12.07 12:22) [15]
> или предлагаете преобразовывать символ на подобие #13 в
> стринг?
а что мешает? туда можно любой символ засунуть
Ничто не мешает, но может есть более цивилизованные методы решения...
← →
Сергей М. © (2007-12-07 12:25) [18]
> непечатные тоже
Если #0 не входит в список символов, которые ты причисляешь к "непечатным", то TStringList успешно работает и с "непечатными".
А если входит, то причем здесь pchar ? Почему не PByte ?
← →
brother (2007-12-07 12:28) [19]Сергей М. © (07.12.07 12:25) [18]
> непечатные тоже
Если #0 не входит в список символов, которые ты причисляешь к "непечатным", то TStringList успешно работает и с "непечатными".
А если входит, то причем здесь pchar ? Почему не PByte ?
Нужен полный диапазон byte (#0..#255)
← →
Anatoly Podgoretsky © (2007-12-07 12:28) [20]
> именно pchar мне все символы нужны (непечатные тоже), читаю
> из файла) а байт и в африка байт)
Ты видимо не знаешь, что string полностью совместим с PChar и использования массива PChar с ручным выделением памяти под содержимое, верный путь к тормозам и ошибкам в программе.
Освой для себя строки, тогда что то сможешь программировать.
← →
Anatoly Podgoretsky © (2007-12-07 12:30) [21]
> Нужен полный диапазон byte (#0..#255)
Тогда PChar исключен, неприменим.
← →
brother (2007-12-07 12:31) [22]Anatoly Podgoretsky © (07.12.07 12:28) [20]
> именно pchar мне все символы нужны (непечатные тоже), читаю
> из файла) а байт и в африка байт)
Ты видимо не знаешь, что string полностью совместим с PChar и использования массива PChar с ручным выделением памяти под содержимое, верный путь к тормозам и ошибкам в программе.
Освой для себя строки, тогда что то сможешь программировать.
Спасибо, но со строками я уже знаком) и кой чего программировать могу. Не надо ставить людей недоучками если они не знают чего - либо! ок?)
А информацию приму к сведению... Не обилел?)
← →
Anatoly Podgoretsky © (2007-12-07 12:32) [23]
> А если входит, то причем здесь pchar ? Почему не PByte ?
>
>
> Нужен полный диапазон byte (#0..#255)
Открываю большой программисткий секрет, мощность byte 0-255
← →
umbra © (2007-12-07 12:33) [24]
> именно pchar мне все символы нужны (непечатные тоже),
> читаю из файла) а байт и в африка байт)
в string может быть все что угодно (даже #0) и пока вы не пытаетесь работать со строкой как с PChar или показывать ее в Listbox или Memo, то никаких граблей не будет
← →
brother (2007-12-07 12:34) [25]Anatoly Podgoretsky © (07.12.07 12:32) [23]
> А если входит, то причем здесь pchar ? Почему не PByte ?
>
>
> Нужен полный диапазон byte (#0..#255)
Открываю большой программисткий секрет, мощность byte 0-255
Я в курсе) # автоматически подставил... опятьже к вам [20] не надо подтверждать...)
← →
Сергей М. © (2007-12-07 12:37) [26]
> Нужен полный диапазон byte (#0..#255)
Ну так и используй тип PByte - это же очевидно !
С какого перепугу у тебя PChar-то объявился ?)
← →
brother (2007-12-07 12:39) [27]Ладно, всем спасибо!
O====================O
|ТЕМУ МОЖНО ЗАКРЫВАТЬ!|
O====================O
← →
Anatoly Podgoretsky © (2007-12-07 12:51) [28]> brother (07.12.2007 12:34:25) [25]
Все ты в курсе, только по коду этого не видно.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.12.30;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.006 c