Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.30;
Скачать: CL | DM;

Вниз

быстрая выборка из кучи   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.018 c
8-1171918111
ы
2007-02-19 23:48
2007.12.30
книги


2-1197010103
Руслан56
2007-12-07 09:48
2007.12.30
runtime error 200 at XXXX:XXXX


15-1196430171
alll_23
2007-11-30 16:42
2007.12.30
Способ задания алгоритма


15-1196160683
All More system
2007-11-27 13:51
2007.12.30
Логика работы проверок подлинности Windows


15-1196172466
Slider007
2007-11-27 17:07
2007.12.30
С днем рождения ! 27 ноября 2007 вторник