KompiuteriaiProgramavimas

QuickSort kaip programavimo metodą

1960 K. A. Šarma sukūrė metodą greito rūšiavimo informacijos, tapo garsiausių. Šiandien ji yra plačiai naudojamas programavimo, nes ji turi daug teigiamų savybių daug: jis gali būti naudojamas bendrųjų atvejų, tai reikalauja šiek tiek padidėjo papildomos atminties, suderinama su skirtingų tipų sąrašus ir lengva įgyvendinti. Tačiau yra ir trūkumų, kurie turi QuickSort: naudojant darbą leidžiama daug klaidų, ir tai yra šiek tiek nestabili.

Tačiau tai pats studijavo versija. Po pirmojo mokėjimo Hoare, daugelis padaryti savo tankus tyrimą. didelė bazė buvo įkurta teoriniais klausimais rasti laiko praleido darbe, kuris yra sklandžia empiriniais įrodymais. Nebuvo Nekilnojamasis pasiūlymai, kaip pagerinti pagrindinę algoritmą ir padidėjęs greitis.

QuickSort yra labai dažnas, tai galima rasti visur. Jo pagrindu metodas yra įgyvendinamas TList.Sort, dabartinį visų versijų (išskyrus 1) Delphi, biblioteka funkcija laiko prireikė baigti, qsort C ++.

Pagrindinis veikimo principas gali būti formuluojamas kaip "skaldyk ir valdyk". Tai atsitinka, kad sąrašą į dvi grupes ir yra rūšiuojami kiekvienam pagal save dalį. Tai reiškia, kad daugiau dėmesio reikėtų skirti atskyrimo procesą, kurio metu vyksta tokia: yra nustatomas pagal bazinę elementas ir gana pertvarkyti visą savo sąrašą. Įmontuotas į kandidatų grupei kairėje, kurio vertė yra mažesnė nei visų kitų pervedimų taisykles. Pasirodo, kad pagrindinis elementas surūšiuoti sąrašą yra savo teisėtą vietą. Kitame etape - PROBLEMIŠKAS Rekurentiniai rūšiavimo funkcijos abiejų elementų, palyginti su puses nuo pagrindo. Jis baigiasi šis procesas veikia tik jei sąraše yra tik vienas elementas, tai yra turi būti išspręstos. Taigi, siekiant įsisavinti programavimo funkciją, kaip greitai rūšiuoti, būtina žinoti žemesnio lygio algoritmais darbą: a) bazinio elemento pasirinkimas; b) iš efektyviausių perstatymas sąrašas gaminti dvi su mažesnių ir didesnių vertybių.

Susipažinti su pirmųjų principų. Renkantis bazinę narį, idealiu atveju turėtų būti pasirinktas iš vidutinio sąrašą. Tada pertrauką yra padalintas į dvi lygias dalis. Tiesiog apskaičiuoti vidutinė vertė sąraše yra labai sunku, todėl net sparčiausiai rūšiavimas aplinkkelių šį skaičiavimas pusę. Tačiau pagrindinio elemento su maksimalų ar minimalų vertės pasirinkimas - taip pat ne geriausia išeitis. Jei toks nustatymas vienu sukuria bus užtikrintas tuščios sąrašai, o antrasis pilnas. Taigi išvada, kad bazinės narys turėtų būti pasirinktas vienas, kad yra arčiau vidurkio, tačiau didžiausi ir mažiausi.

Kai pasirinkimas yra nustatoma, galite pereiti prie skilimo algoritmas. Šis vadinamasis vidinis ratai greitai rūšiuoti. Viskas yra pastatytas ant dviejų Sparti prieiga indeksų: pirmiausia eiti per elementų iš kairės į dešinę, antra, priešingai, iš dešinės į kairę. Prasideda operacija vykdymo teisė: indeksas yra sąraše ir lyginti visus vertybes pagrindinis. Ciklas yra baigtas, kai elementas yra mažesnis nei arba lygus bazinės linijos. Tai reiškia, kad yra palyginimas ir sumažina indekso vertę. Kairėje, kai darbas baigtas didesnė arba lygi vertė. Čia palyginimas vertė padidėja.

Šiuo atitvarų algoritmą, kurį sudaro QuickSort etape dvi situacijos gali kilti. Pirmoji yra ta, kad indeksas kairėje yra mažesnis nei į dešinę. Tai rodo klaidą, tada yra elementai, dėl kurių ji buvo nurodyta sąraše yra neteisinga tvarka. Išvesties - pakeisti savo vietas. Antroji situacija yra, kai abi stulpelyje yra lygus arba kerta. Tai rodo sėkmingą atskyrimą sąrašo, tai yra, darbas yra baigtas.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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