Кіріспе

Кірістік деректеріндегі қолданыстағы реттілікті пайдаланатын сұрыптау алгоритмдері. Егер сұрыптау алгоритмі кірістік деректеріндегі қолданыстағы реттілікті пайдаланса, ол адаптивті сұрыптау тобына жатады. Ол кірістік тізбектегі алдын ала сұрыпталғандықтан немесе тәртіпсіздіктің шектеулі мөлшерінен (тәртіпсіздікті өлшеудің әртүрлі анықтамаларына сәйкес) пайда көріп, жылдамырақ сұрыптайды. Адаптивті сұрыптау көбінесе қолданыстағы сұрыптау алгоритмдерін өзгерту арқылы іске асырылады.

Мотивация

Салыстыру негізінде жұмыс істейтін сұрыптау алгоритмдері дәстүрлі түрде уақыт күрделілігі бойынша O(n log n) оптималды шегіне қол жеткізуге бағытталған. Адаптивті сұрыптау кірістің қазіргі күйін пайдаланып, жақсы нәтижелерге қол жеткізуге тырысады, сондықтан алгоритмнің сұрыптауға кеткен уақыты тізбектің мөлшері мен оның тәртіпсіздігіне байланысты біртегіс өседі. Яғни, кіріс алдын ала сорыфталған сайын, оны сұрыптау жылдамақ. Бұл сұрыптау алгоритмі үшін тартымды қасиет, себебі практикада жартылай сорыфталған тізбектер жиі кездеседі. Осылайша, кірістегі қазіргі күйді ескере отырып, қолданыстағы сұрыптау алгоритмдерінің өнімділігін жақсартуға болады. Ең жаман жағдайда жақсы жұмыс істейтін, атап айтқанда, үйірменді сұрыптау және біріктіру сұрыптау алгоритмдері кірістегі қазіргі күйді ескермейді, бірақ бұл кемшілік біріктіру сұрыптау үшін сол жақ топтың соңғы мүшесі оң жақ топтың бірінші мүшесінен кіші (немесе тең) екенін тексеру арқылы оңай түзетіледі, онда біріктіру операциясы қарапайым қосымшалаумен алмастырылуы мүмкін – бұл өзгеріс алгоритмді адаптивті ету шеңберінде жасауға болады.

Мысалдар

Адаптивті сұрыптау алгоритмінің классикалық мысалы – енгізу сұрыптау. Шелсорт, смуртсорт, сплейсорт, Тимсорт және Картезиан ағашы сұрыптау.