Komputeran, Bernameyên
Quicksort wekî metoda bernameyên
Di sala 1960 K. A. livvayê rêbazeke ji bo rêzkirinê bi lez ên agahî pêşxistin, navdar bû. Îro ku bi awayekî berfireh li bernameyên bikaranîn, wekî ku xwedî gelek milkên erênî ne: mirov dikare ji bo dozên giştî tê bikaranîn, pêwîstî bi zêdebûna biçûk di bîra din jî, gerek bi cureyên cuda yên lîsteyan û hêsan e ji bo cîbicîkirina. Lê ne belî hene, ku Quicksort: bikaranîna karê destûr gelek ji sedema, û ew hinekî nearam e.
Lê belê, ev versîyona herî xwend e. Piştî ku yekemîn Hoare peredana, gelek xebatê dagirtî xwe bikin. base mezin li ser pirsên teorîk yên peydakirina dema li ser kar, ku ji aliyê delîl û îdiayên xwe disipêre hat avakirin. bûn pêşniyar dike ji bo baştirkirina rêbazeke bingehîn û zêdebûna leza hene.
Quicksort pir hevpar e, mirov dikare li her derê dîtin. Li ser bingehê wê rêbaza TList.Sort, niha li hemû guhertoyên (ji bilî 1) Delphi, ku fonksiyona pirtûkxaneyê dema ew birin ji bo temamkirina, qsort li C ++ cih bê.
Prensîpa bingehîn ya operasyonên dikarin wek "perçe bike û îdare" formulekirin. Ev ecêb şikandina di lîsteyê de di nav du komên û bi ji bo her beşek bi serê xwe were çareserkirin. Ev jî nîşan dide ku balê zêdetir Divê ji bo pêvajoya veqetandina, di dema ku li jêr pêk tê dayin: ji aliyê element bingeha biryar û hatiye nisbeten serastkirin tevahiya lîsteya xwe. Avakirin, li ser milê çepê komeke berbijarên, nirxê ku kêmtir ji hemû qaîdeyên transfer din e. Ev derkeve holê ku hêmana sereke ya di lîsteyê de herî serî li cihê ku heq bi xwe ye. Di qonaxa bê - dijwarîya fonksiyonên sorting QXml ji bo her du aliyan ji elementên xizmên xwe li baregeha. Ev dawiya pêvajoya xebatên bi tenê eger di lîsteyê de tenê yek element, ew e ku ji bo rêzbûyî bê. Bi vî awayî, ji bo ku ji axayê a function bernameyên wek sort bi lez, pêwist e ku bizanibin ku kar ji algorîtmayên-level lower: a) hilbijartina endamên bingehîn; b) lîsteyek ji permutation herî bi bandor ji bo hilberîna du koman bi nirxên piçûk û mezin.
Nasîya bi prensîbên yekem. Dema hilbijartina endamên bingehîn, bîrdoziyê de divê ji lîsteya average bên hilbijartin. Piştre li ser break ji du gwîzên wekhev dabeş. Just hejmêrim nirxa navencî di lîsteyê de gelek zehmet e, her wisa, teyra sorting kêmiya vê aliyê calculus. Lê hilbijartina hêmana bingehîn bi nirxa herî zêde an kêm - jî bi baştirîn alternatîf e. Di doza wisa diyarkirina yek diafirîne lîsteyên vala bê misogerkirin wê, û ya duyem full. Ji ber vê yekê di dawiyê de ku wek endamekî bingehîn divê bên hilbijartin yek e, ku li naverast nêzîktir, di heman demê de li ser herî zêde û herî kêm.
Carekê hilbijartina biryardar e, tu dikarî bi rêbazeke decomposition bişêwire. Ev da-navê xelek hundir sort bi lez. Her tişt li ser du encamen Access Rapid avakirin: yekem li ser hêmanên ji çepê ber bi rastê, ya duyem, li dijî here, ji rast ber bi çep. Dest mafê darvekirinê operasyona: pêristê de ye li ser lîsteya û our hemû nirxên bi sereke. Dewra temam e, dema ku element kêmtir an jî wekhev bi bingehîn e. e ku, e miqayeseya li wir û nirxa ji index kêmbe. Li ser destê çepê, dema kar mezintir an nirxê wekhev qediya. Li vir, bi nirxê berhevdana zêde dibe.
Di vê astê de ji algorithm de perçekirin ku birîtî ye quicksort, du rewşên dikarin derkevin. Ya yekem ew e ku, index li milê çepê kêmtir ji rastê ye. Ev dide nîşandan an error, wê demê dibin hêmanên ku li ser ew di lîsteyê de jî diyar bû ku di pergala çewt de ne jî hene. Output - biguhere cihên xwe. Rewşa duyemîn e ku her du ji sitûna ji bo wekhev an re derbas bûn e. Ev jî nîşan dide veqetandina serketî ya di lîsteyê de, ku, kar niha temam bûye.
Similar articles
Trending Now