Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako zlúčiť radenie v jazyku Python

Radenie zoznamov dát je problém , ktorý trápi programátorov od začiatku počítačového programovania . Triedenie žiadnu zoznam údajov , môže skončiť ako pamäť - a časovo náročné úlohy . Pretože toto , boli vynájdené rôzne spôsoby triedenia , aby sa minimalizovalo výzvu a úsilie triedenie . Jedna metóda je zlúčiť triedenia . To rozdeľuje zoznam rekurzívne do singulárnych prvkov a recombines zoznamu v utriedené podobe . Každý programovací jazyk , ktorý podporuje rekurziu , ako je Python , môže realizovať zlúčenie druhu . Veci , ktoré budete potrebovať
Python Interpreter s interaktívnou vývojové prostredie
Zobraziť ďalšie inštrukcie Cestuj 1

Definujte funkciu " mergesort " . Táto základná funkcia rekurzívne volá sama seba , rozdelenie veľkosti zoznamu v polovici s každou výzvou . Akonáhle je funkcia mergesort hity zoznam s jedným prvkom , rekurzia sa zastaví a vráti prvok . Ako mergesort rekurzia odvíja , každý menšie zoznam zlúčené v zoradení poradí . Tento príklad zobrazuje základné funkcie mergesort , ktorá berie zoznam ako argument :

>>> def mergesort ( ak ) :

. . . v prípade , ľan ( ak ) < 2 :

. . . návrat Ak

. . . mid = ľan ( ak ) /2

. . . prvý = mergesort ( ak [ : stredná ] )

. . . posledný = mergesort ( ak [ mid : ] )

. . . návrat korešpondencie ( prvý , posledný )
2

Nastavte metódu zlúčenie . Táto funkcia bude slúžiť ako metóda triedenia , vráti zoradený zoznam prvkov . Táto metóda merge má dve už zoradené zoznamy . To potom definuje vnútorný zoznam " zoradené " , ktorý bude reprezentovať kombinovanej zoznamy zotriedené argumentov . Metóda zlúčenie Dosahuje to tým , že najmenší prvok a vložiť ho do nového zoznamu " triedeného " . Potom, čo jeden zo zoznamov skončí , druhý list je vložený v celom rozsahu celým

>>> def zlúčiť ( x , y ) : . Celým

. . . zoradené = [ ]
3

Zlúčenie zoznamov v metóde korešpondencie . " Zatiaľ čo " slučka v príklade porovnáva jednotlivé položky zoznamu podľa bodu , pričom najmenší prvok a vloží ho do nového zoznamu " triedeného " . Potom, čo jeden zo zoznamov končí , druhý zoznam je vložený v plnom rozsahu , a nová radené zoznam je vrátený :

. . . i , j = 0 , 0

. . . pričom i < ľan ( x ) a j < ľan ( y ) :

. . . ak x [ i ] < = y [ j ] :

. . . sorted.append ( x [ i ] )

. . . i + = 1

. . . else :

. . . sorted.append ( y [ j ] )

. . . j + = 1

. . . radené + = x [ i : ]

. . . radené + = y [ : j ]

. . . návrat radené

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené