Тез сұрыптау Тез сұрыптау әдісі – күнделікті тәжірибеден алынған.
Мысалы: Аттары бойынша алфавиттік карточкалар жиынын қандай да бір
әріпке қатысты, мысалы К, екі кіші жиынға бөлуге болады. Барлық К-дан кіші
немесе тең тең болатын бір жиынға, К-дан үлкен болатын бір жиынға бөлеміз.
Одан кейін әрбір жиын тағы да екіге бөлінеді т.с.с. Тез сұрыптау алгоритмінде
орталық элементті анықтап, сол арқылы бөлу әдісі қолданылады. Яғни, алғашқы
массив екіге бөлінеді. Орталық элементтен үлкен және орталық элементтен кіші.
Тура осы әрекет алынған массивтің 2 бөлігіне де жүргізіледі. Осылайша бөліне
береді. Әрбір бөлікте бір ғана қалғанша жалғастырамыз.
Сұрыптау принципі: Массивтің орталық элементі таңдап алынады. Массивтің барлық элементтері
солдан оңға және оңнан солға қарай қарап өтіледі.
І. Солдан оңға қарай қозғалғанда A[scan up] деген элементті іздейміз және
бұл элемент орталық элементтен үлкен болуы керек, оның позициясын есімізге
сақтап аламыз. Оңнан солға қарай қозғалғанда A[scan down] деген элементті
іздейміз. Ол элемент орталық элементтен кіші немесе тең болады. Позициясын
есте сақтаймыз. Табылған элементтердің орындарын ауыстырамыз және scan up
және scan down индекстері қиылысқанша іздеуді жалғастырамыз.
1-этапты орындап болғаннан кейін алғашқы масситің элементтері орталық
элементке бөлінеді.
2-этапта 1-этаптың әрекеттері массивтің оң жақ және сол жақ бөліктері үшін
жеке-жеке орындалады.
3-этапта осы әрекеттердің барлығы 4 бөлігі үшін жеке-жеке орындалады.
4-этапта 4 бөлігі жеке-жеке орындалады.
Есептеу күрделілігі.Тиімділік анализі кей жағдайда ғана мүмкін болады.
Айталық, массив элементтер саны n=2 (K=log
2
n) 1-сканерлеуде n-1 салыстыру
жүргізіледі. Оның нәтижесінің өлшемі
2
n өлшемді ішкі тізім пайда болады.
Өңдеудің келесі фазасында әрбір ішкі тізім үшін n/2 салыстыру қажет болады.
Осылайша, бөлу процесі табылған ішкі тізімдер тек бір ғана элементтер тұрғанша
К жүрістен кейін аяқталады. Мұндағы салыстырулардың жалпы саны мына
формуламен анықталады: n*k=n*log
2
n. Жалпы түрдегі тізім үшін есептеу
68
күрделілігі – О(n log
2
n) тең болады. Ал ең нашар жағдайда орталық элемент ең
кіші элемент болғанда есептеу күрделігі O(n
2
) тең болады.