Кіріспе

Ассоциативтік массивтің түрі

Компьютерлік ғылымда Джуди массиві – жоғары өнімділікке және жадты аз пайдалануға ие ассоциативтік массивтің түрін іске асыратын дерек құрылымы. Көптеген басқа кілт-мәнді сақтау орындарынан өзгеше, Джуди массиві хештеуді қолданбайды, кілттерін (бүтін сан немесе жол болуы мүмкін) қысып пайдаланады және сирек деректерді тиімді ұсынуға мүмкіндік береді; яғни, жадты пайдалануды немесе өңдеу уақытын күрт арттырмай, үлкен көлемде тағайындалмаған индекстерге ие болуы мүмкін. Олар пета элементтерінің диапазонындағы өлшемдерде де тиімді жұмыс істеу үшін жасалған, өнімділік O(log n) ретінде өседі. Шамамен айтқанда, Джуди массиві – 256-дық радикс ағаштарының жоғары сапалы оңтайландырылған түрі. Джуди ағаштары әдетте AVL ағаштарынан, B ағаштарынан, хеш-кестелерден және секіріп өтетін тізімдерден жылдам, себебі олар процессордың кэшін тиімді пайдалану үшін жоғары деңгейде оңтайландырылған. Бұған қоса, оларға ағаш теңгерімі қажет емес және хештеу алгоритмі қолданылмайды.

Тарих

Джуди массивін Дуглас Баскинс ойлап тапты және оны әпкесінің құрметіне атады.

Жадыны бөлу

Джуди массиві динамикалық және элементтер қосылғанда немесе алынып тасталғанда кеңейе немесе тарылуы мүмкін. Джуди массиві пайдаланатын жад, массивідегі элементтер санына пропорционал болады.

Жылдамдық

Джуди массиві RAM-нан қымбат кэш жолдарының толтырылуын азайту үшін жасалған, сондықтан алгоритмде кэштен қателерді мүмкіндігінше болдырмауға бағытталған күрделі логика бар. Осы кэштік оптимизациялардың арқасында Джуди массиві жылдам, әсіресе өте үлкен деректер жиынтықтары үшін. Ретті немесе дерлік ретті деректер жиынтықтарында Джуди массиві тіпті хэш-кестелерден де озып кетеді, себебі хэш-кестелерден өзгеше, Джуди массивінің ішкі ағаш құрылымы кілттердің ретін сақтайды.

Кемшіліктері

Джуди массиві өте күрделі. Ең кішкентай реализациялары мыңдаған код жолдарынан тұрады. Сонымен қатар, Джуди массиві 64 байттық кэш желілері бар машиналар үшін оңтайландырылған, оларды маңызды өзгерістерсіз басқа платформаға көшіру мүмкін емес.