ÒdinatèPwogram

Quicksort kòm yon metòd pwogram

Nan ane 1960, K. A. jivr devlope yon metòd pou klasman an rapid nan enfòmasyon, te vin pi popilè nan. Jodi a li se lajman ki itilize nan pwogram, kòm li gen yon anpil nan pwopriyete pozitif: li kapab itilize pou ka jeneral, li mande pou yon ti ogmantasyon nan memwa a adisyonèl, konpatib ak diferan kalite lis ak fasil yo aplike. Men, gen dezavantaj, ki te gen Quicksort: lè l sèvi avèk travay pèmèt yon anpil nan erè, epi li se yon ti jan enstab.

Sepandan, li se vèsyon an ki pi etidye. Apre Hoare nan peman an premye, anpil fè etid dans li yo. te gwo baz etabli sou kesyon teyorik pou jwenn tan an te pase nan travay la, ki se Sur pa prèv anpirik. Te gen pwopozisyon reyèl yo amelyore algorithm nan debaz ak ogmante vitès.

Quicksort se trè komen, li kapab jwenn tout kote. Sou baz li yo se metòd la aplike TList.Sort, prezan nan tout vèsyon (eksepte 1) Delphi, fonksyon bibliyotèk la nan tan li te pran yo fini, qsort nan C ++.

ka prensip debaz la nan operasyon dwe formul kòm yon "separe ak konkeri". Li rive kraze lis la nan de gwoup yo ak yo ranje pou chak pati pou kont li. Li swiv ki ta dwe plis atansyon, ki dwe peye nan pwosesis la separasyon, pandan ki sa ki annapre yo rive: se detèmine pa yon eleman baz e li te relativman rearanje lis tout l 'yo. Bati nan bò gòch la nan yon gwoup nan kandida, valè a nan ki se mwens pase tout règ yo transfè ak lòt. Li sanble ke eleman prensipal la nan lis la Ranje se nan plas lejitim li yo. Pwochèn sèn nan - yon defi repetitif fonksyon klasman pou tou de bò nan eleman yo relatif nan baz la. Li fini pwosesis la ap travay sèlman si lis la gen sèlman yon sèl eleman, se sa ki yo dwe klase. Se konsa, yo nan lòd yo metrize yon fonksyon pwogram kòm yon sòt rapid, li se nesesè yo konnen travay la nan algoritm pi ba-nivo: a) chwa pou yo manm nan baz; b) yon lis pèmitasyon ki pi efikas yo pwodwi de kouche ak pi piti ak pi gwo valè.

Abitye ak prensip premye. Lè w ap chwazi manm nan baz, ta dwe depreferans dwe chwazi nan lis la nan mwayèn. Lè sa a, sou repo a se divize an de mwatye egal-ego. Jis kalkile valè a mwayèn nan lis la se trè difisil, se konsa menm klasman ki pi rapid kontourneman bò sa a kalkil matematik. Men, chwa pou yo eleman nan debaz ki gen valè maksimòm nan oswa minimòm - tou pa chwa ki pi bon. Nan ka detèminasyon sa yo nan yon sèl kreye lis vid pral garanti, ak dezyèm plen vant yo. Pakonsekan konklizyon an ke kòm manm nan baz yo ta dwe chwazi youn ki se pi pre mwayèn nan, men sou kantite maksimòm la ak minimòm.

Yon fwa yo yon chwa detèmine, ou ka kontinye nan algorithm nan dekonpozisyon. Sa a sa yo rele pasan enteryè rapid sòt. Tout se bati sou de endis Aksè Rapid: premye ale sou eleman yo de gòch a dwat, dezyèm lan, sou kontrè a, de dwat a gòch. Kòmanse operasyon ekzekisyon dwa: endèks la se sou lis la epi konpare tout valè yo nan prensipal la. Sik la se konplè lè eleman nan se mwens pase oswa egal a debaz la. Sa se, gen yon konparezon ak diminye valè a nan endèks la. Sou yon bò gòch lè se travay la fini pi gran pase oswa egal valè. Isit la, valè konparezon ogmante yo.

Nan faz sa a nan algorithm séparation ki konprann quicksort, de sitiyasyon pouvwa leve. Premye a se ke endèks la sou bò gòch la se mwens pase dwat. Sa a endike yon erè, Lè sa a, gen eleman ki te sou li a te deklare nan lis la yo nan lòd la mal. Sòti - chanje plas yo. Sitiyasyon an dezyèm se lè tou de nan kolòn nan ki egal a oswa janbe lòt. Sa a endike yon separasyon siksè nan lis la, ki se, se travay la se kounye a konplè.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ht.atomiyme.com. Theme powered by WordPress.