Айверсон шарты бұл алгоритмнің тиімділігін арттыру үшін осы алгоритмді оңтайландыру әрекеттерінің бірі болып табылады . Бірақ , әдетте , машина командаларын қолмен оңтайландыруды қоса алғандағы , мұндай барлық әрекеттер алгоритмнің жұмыс жылдамдығын айтарлықтай арттыруға әкелмейді . Бүтін сандардың массивін қарапайым алмастыру арқылы сұрыптаудың функциясын іске асыру листинг.
Қарапайым алмастыру арқылы жақсартылған сұрыптау . Соңғы Листингтің іске асырылуын тек алмастырулардың болмау фактісін ғана емес , сондай - ақ алмасу жүргізілген ј индексінің соңғы мәнін де қадағалай отырып , біршама жақсартуға болады . Бұл жағдайда келесі Листингте берілген шешімді аламыз ;
Алдыңғы алгоритмдерден айырмашылығы , салыстыру саны массивтің бастапқы реттелуіне байланысты . Егер массив талап етілген тәртіпте сұрыпталып болған болса , онда процедураның барлық жұмыс уақытында салыстыру операцияларының N - 1 орындалады , erep сұрыпталмаған болса , онда ( NP - M ) / 2 салыстыру орындалады . Алмастыру кезінде меншіктеу операцияларының саны келесі түрде анықталады : жақсы жағдайда – 2 ( N - 1 ) ; • нашар жағдайда жалпы ( N ? + 2N ) / 2 ретінде бағаланады . Орташа жағдай үшін нақты баға беру өте қиын , бірақ жалпы түрде жұмыс уақыты өте жақсы және нашар жағдайлар арасындағы орташасы болып табылады .
Бұл алгоритм орта есеппен алдыңғылардан сәл ғана жақсы ( сондай - ақ әртүрлі циклдар бойынша алмастыруды орындайтын меншіктеу операцияларын тарату есебінен ) , бірақ бірнеше артықшылықтарға ие : — оның мінез - құлқы табиғи : егер массив қажетті тәртіпте сұрыпталынған болса , алгоритм есептеулердің ең аз санын және массив талап етілетін тәртіпке кері тәртіппен сұрыпталса , есептеулердің ең үлкен санын жүргізеді . Реттелген массивтерді жылдам өңдеу жүргізіледі ; - бірдей кілттердің жүру тәртібі өзгермейді . Егер тізім екі кілт бойынша да сұрыпталса , онда қою арқылы сұрыптаудан кейін ол екі кілтпен де сұрыпталған күйінде қалады ; сұрыптаудың негізгі алгоритмдері арасындағы ең қысқа процедуралардың бірі .
Достарыңызбен бөлісу: |