UnDetected написал(а):Всем привет.
Необходимо реализовать хранение данных в 2х- и 3х-мерных массивах. Но нюанс заключается в том, что количество элементов на каждом уровне должно быть разным. Насколько я понимаю, при использовании Dim a.l(10, 20, 30) будет создан 3х-мерный массив фиксированного размера по всем трем уровням, т.е. на первом - 10 элементов, на каждом втором - по 20, на каждом из них - по 30.
Логика работы такова, что на этапах обхода вычисляется размер той или иной ветки на том или ином уровне - это раз, и два - нет смысла хранить данные в массиве вида a.l(50, 1000), если по факту там от силы пара веток с 1000 элементов на втором уровне, а все остальные по парочке значений содержат.
И чтобы совсем здорово было - таких массива 3 и их числовые ключи используются для сквозной перелинковки друг с другом (читай - по номеру ключа в одном массиве можно получить относящиеся к этим данным - данные из второго массива и т.д.)
Просто сижу переписываю один весьма занятный проект с PHP
Не существует классических массивов, таких как вы описали. Тут, на форуме это уже сказано. То, что вы описали, уже не массив, а другая организация данных. В PHP, на сколько я помню, массивы по большей части ассоциативны, но похожие на многие структуры, по сути, там ключ и значение. Вам нужно продумать и создать, свою организацию данных. Но, вы хотите быстро... - Качественно, это не получится!
Если проект действительно стоящий и вам интересно его делать, то запаситесь терпением. Делайте, и спрашивайте на форме, подскажем, что можем.
Если не критична скорость добавления, а необходима скорость поиска, то смотрите в сторону сбалансированных деревьев, АВЛ, Красно-Чёрное и т.п. СУБД, используют эти алгоритмы, но за счёт парсинга строк и дополнительных накруток, которые вам могут не понадобиться, время поиска может увеличиться. В отличии, от того, если бы вы организовали правильную структуру непосредситвенно в PB.
И конечно же, это касается больших данных. Если у вас данных не так много, то не заморачивайтесь, делайте обычными массивами, ничего страшного не случится. Более приближенно к PHP, использовать хэш-карту.
Если же вы, всё же скрупулёзны в этом вопросе. То, накидайте пожалуйста кодом, пример записи, вашей структуры данных, хотя бы в обычный массив. Возможно, кто-то заинтересуется и да подкинет, интересные идей
Отредактировано Webarion (30.08.2023 01:55:39)