Кіріспе

Кездейсоқ қол жеткізу (дәлірек айтқанда және жалпылама тікелей қол жеткізу деп аталады) – бұл тізбектегі кез келген элементке бірдей уақытта немесе адрестелетін элементтер жиынынан кез келген дерекке, жиынтықта қанша элемент болса да, басқа элементтерге қарағанда оңай және тиімді түрде қол жеткізу мүмкіндігі. Компьютер ғылымында бұл әдетте деректерді сақталған тәртіппен алуды талап ететін реттік қол жеткізуге қарсы қойылады. Мысалы, деректер бір қатардағы қатарлар сияқты бір өлшемде, екі өлшемді қатарлар мен бағандар сияқты екі өлшемде немесе көп өлшемде сақталуы мүмкін. Дегенмен, барлық координаттар берілген жағдайда, бағдарлама әрбір жазбаға басқа жазбалармен бірдей жылдамдықпен және оңайлықпен қол жеткізе алады. Осы тұрғыдан алғанда, деректі таңдау кездейсоқ болып табылады, себебі қандай элемент ізделсе де, оны табу үшін тек оның мекенжайы, яғни орналасқан координаттары (мысалы, қатары мен бағаны немесе магниттік барабандағы жолы мен жазба нөмірі) ғана қажет. Алғашқыда «кездейсоқ қол жеткізу» термині қолданылды, өйткені процесс жазбаларды олардың қажеттілік ретіне қарамастан таба білуге тиіс болды. Бірақ көп ұзамай «тікелей қол жеткізу» термині басымдық алды, себебі кез келген деректі оның орналасуына қарамастан тікелей алуға болады. Бірақ ең маңыздысы – құрылғы кез келген қажетті деректі талап бойынша дереу қол жеткізе алады. Керісінше, реттік қол жеткізуде алыс жатқан элементке қол жеткізу үшін көбірек уақыт қажет. Бұл айырмашылықты көрсету үшін ежелгі парқ (реттік; қажетті дерекке дейін барлық материалды ашу керек) пен кітапты (тікелей: кез келген бетке дереу ашуға болады) салыстыруға болады. Көне мысал – кассеталық таспа (реттік – кейінгі әндерге жету үшін алдыңғы әндерді жылдам орап өту қажет) және CD (тікелей қол жеткізу – ізделінетін трекке тікелей өтуге болады, оның алынатынын біле отырып). Деректер құрылымдарында тікелей қол жеткізу тізімдегі кез келген жазбаға тұрақты уақытта (тізімдегі орнына және тізімнің мөлшеріне қарамастан) қол жеткізу мүмкіндігін білдіреді. Бұл кепілдікті массивтерден (және динамикалық массивтер сияқты байланысты құрылымдардан) басқа өте аз деректер құрылымдары бере алады. Тікелей қол жеткізу көптеген алгоритмдерде, мысалы, екілік іздеу, бүтін сандарды сұрыптау немесе Эратоспен елеуінің кейбір нұсқаларында қажет немесе пайдалы. Басқа деректер құрылымдары, мысалы, тізбекті тізімдер, деректерді тиімді қосуға, жоюға немесе қайта реттеуге мүмкіндік беру үшін тікелей қол жеткізуден бас тартады. Өзін-өзі теңгерілген екілік іздеу ағаштары қабылданушы компромисті ұсынуы мүмкін, онда қол жеткізу уақыты жиынтықтың барлық мүшелері үшін бірдей болмайды, бірақ берілген мүшені алудың ең ұзақ уақыты оның мөлшерімен ғана логарифмдік түрде өседі.