<prompt> Eleza maelezo ya utekelezaji wa quicksort  <response>: Quicksort ni algoriti maarufu ya kupanga ambayo hutumia mkakati wa kugawa-na-kushinda kupanga safu au orodha fulani. Inayo ugumu wa wastani wa wakati wa On log n, ambayo inafanya iwe bora kwa kupanga seti kubwa za data. Kanuni ya msingi ya upangaji haraka ni kama ifuatavyo: 1. Chagua egemeo: Hatua ya kwanza katika algoriti ya upangaji haraka ni kuchagua kipengele cha egemeo kutoka kwa safu. Hili linaweza kufanywa kwa njia kadhaa, kama vile kuchagua kipengele cha kwanza, cha mwisho au cha kati, au kutumia wastani wa vipengee vya kwanza, vya kati na vya mwisho kama egemeo. Uchaguzi wa pivot unaweza kuathiri utendaji wa algorithm. 2. Kugawanya: Hatua inayofuata ni kugawanya safu katika safu ndogo mbili, moja ikiwa na vipengee vilivyo chini ya ege na nyingine na vipengee ambavyo ni vikubwa kuliko egemeo. Egemeo kisha huwekwa katika nafasi yake ya mwisho katika safu iliyopangwa. Hii inafanywa kwa kuanzia vipengele vya kwanza na vya mwisho vya safu na vipengee vya kubadilishana hadi vipengele vyote vilivyo upande wa kushoto viwe chini ya egemeo na vipengele vyote vilivyo upande wa kulia ni vikubwa kuliko egemeo. 3. Urejeshaji: Quicksort kisha inatumika kwa kujirudia kwa safu ndogo mbili. Utaratibu huu unaendelea hadi kesi ya msingi ifikiwe, ambayo ni wakati safu ndogo zina chini ya au sawa na kipengele kimoja. Mara tu algoriti ya upangaji haraka imekamilika, safu itapangwa kwa mpangilio wa kupanda. Ni muhimu kutambua kwamba uchangamano wa wakati mbaya zaidi wa upangaji haraka ni On2 wakati egemeo limechaguliwa vibaya, kama vile kuchagua kila mara kipengele cha kwanza au cha mwisho katika safu iliyopangwa au iliyokaribia kupangwa. Hili linaweza kupunguzwa kwa kutumia uteuzi wa egemeo nasibu au kwa kutumia mbinu ya wastani kati ya tatu ili kuchagua egemeo. 