Вниз
Скачать: CL | DM;

Вопрос про массив   Найти похожие ветки 

← →
zamkom ©   (2004-02-11 15:04) [0]

Ув. масстера. Вопрос такой: Есть код
var
BlockStrok : Array [0..10000] of string;
begin
For i:=0 to 10000 do
... Здесь заполняется массив;

А вот здесь надо найти из всего этого массива одну строку удовлетворяющую условию.
Конечно можно через For перебрать все строки и каждую сравнить, но может быть можно как нибудь иначе решить эту проблему.


← →
VLAD-MAL   (2004-02-11 15:05) [1]

Используй TStringList с включенной сортировкой. Там в этом случае автоматически задействуется бинарный поиск. Жуть как быстро.


← →
Семен Сорокин ©   (2004-02-11 15:06) [2]

а проверять на условие нельзя когда заносишь в массив данные? тогда заново пробегать не надо будет.


← →
Тимохов ©   (2004-02-11 15:10) [3]


> zamkom © (11.02.04 15:04)

Если тебе надо всего один раз найти строку (т.е. не многократно) - ищи перебором и не одумляйся.
Если операция частая, то слушай 1 или 2.


← →
zamkom ©   (2004-02-11 15:11) [4]

Хорошо попробую с [1], но грустно...


← →
Тимохов ©   (2004-02-11 15:12) [5]


> но грустно...

Работать всегда тяжел... :)))))

Поизучай еще хеш функции, также полезная и быстрая весч.


← →
VLAD-MAL   (2004-02-11 15:16) [6]

Ага, хэш, он на TStringList грустит.
Как бы суицида не случилось...


← →
TUser ©   (2004-02-11 16:21) [7]

В 10000 строчек бынарный поиск - это и так быстро. Так что хэш тута не нужен.


← →
Тимохов ©   (2004-02-11 16:32) [8]


> В 10000 строчек бынарный поиск - это и так быстро. Так что
> хэш тута не нужен.

Это чтобы он понял, что бывает еще грустнее :))))
Вообще говоря, имхо, это сильно зависит от задачи. Если такой поиск нужен очень часто (раз та 1000000 подряд), то хорошый хеш тут не заменим.


← →
Alex Konshin ©   (2004-02-12 02:51) [9]

А тебе действительно нужен массив?
В зависимости от ответа посмотри на юниты AVLTrees и Arrays на моем сайте http://home.earthlink.net/~akonshin/


← →
Miwa ©   (2004-02-12 05:21) [10]

А чего собственно от TStringList"а грустить - вот чего не пойму.


← →
Alex Konshin ©   (2004-02-12 06:06) [11]

Задачи они разные бывают. Вполне возможно, что сортировать нельзя.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.018 c
6-80082
DJ_DAN
2003-12-21 04:19
2004.02.25
Создание пакетов Ethernet....


6-80056
FireMan_Alexey
2003-12-19 09:28
2004.02.25
Как узнать маску подсети?


1-79907
AsbAlex
2004-02-08 01:23
2004.02.25
Помагите перенести код с паскаля на си


1-80001
Saris
2004-02-09 17:02
2004.02.25
Создание объектов в Rave reports


14-80240
race1
2004-01-29 16:02
2004.02.25
комп для музыканта




   Наверх