Uvod v algoritem razvrščanja lupine

Uvod v algoritem razvrščanja lupine

Razvrščanje lupin je tehnika razvrščanja, ki razdeli dani seznam na podvrste in jih nato razvrsti z razvrščanjem vstavljanja. Algoritem uporablja vrzel n ki izbere predmete, ki so n narazen, da sestavljajo podvrste.





Seznami se nato razvrstijo z razvrščanjem vstavljanja, nato pa se združijo. Kombinirani seznam ni v celoti razvrščen, vendar daje algoritmu prednost, ker ima postavke bližje svojim končnim položajem.





Za razvrščanje seznama se znova uporabi razvrščanje vstavkov.





Natančnejši pogled na Shell Sort

Zgornji opis morda ni imel veliko smisla, vendar bi moral biti v pomoč primer. Recimo, da imate seznam: [39, 6, 2, 51, 30, 42, 7, 4, 16] in vrednost vrzeli tri.

Prvi podnapis bi imel postavke: 39, 51, 7



Drugi podlist: 6, 30, 4

kako povedati amazonu, da niste dobili paketa

Tretji in zadnji podnapis: 2, 42, 16





Po razvrščanju vstavljanja bi bili vsi podvrste razvrščeni kot spodaj:

Prvi: 7, 39, 51





Drugi: 4, 6, 30

Tretji: 2, 16, 42

Razvrščeni podnapis je zdaj na poseben način združen. Vsaka postavka podvpisa je vnesena v indeks, iz katerega je bila zbrana prvotna nerazvrščena vrednost podnapisa.

Povezano: Uvod v algoritem razvrščanja mehurčkov

Tako boste dobili naslednje zaporedje:

trdi disk deluje 100%

[7, 4, 2, 39, 6, 16, 51, 30, 42]

Upoštevajte, da seznam še vedno ni razvrščen, vendar so postavke bližje položajem, na katerih bi morali biti. Po razvrščanju vstavljanja na tej kombinaciji seznamov bo seznam končno razvrščen:

[2, 4, 6, 7, 16, 30, 39, 42, 51]

Algoritemska analiza

Kompleksnost razvrščanja lupin je med O (n) in O (n2). Izračun tega zaključka presega obseg tega članka.

Najdi moj iPhone prikazuje staro lokacijo

Izvajanje Pythona:

def shellSort(my_list):
n = len(my_list)
interval = n // 2 # floor division
while interval > 0:
for val in range(interval, n):
temp = my_list[val]
x = val
while x >= interval and my_list[x - interval] > temp:
my_list[x] = my_list[x - interval]
x = x - interval

my_list[x] = temp
interval = interval // 2

Prehod na združitev Razvrsti

Obstaja več algoritmov za razvrščanje, od katerih ima vsak svoje edinstveno delovanje. Razvrstitev združevanja na primer uporablja strategijo loči in osvoji ter ima kompleksnost O (nlogn).

Razvrstitev združevanja je v nekaterih primerih boljša od razvrščanja lupin in je vsekakor vredna ogleda. Naslednji bi moral biti na vašem seznamu bralnih algoritmov.

Deliti Deliti Cvrkutati E-naslov Uvod v algoritem razvrščanja za združevanje

Preučujete podatkovne strukture in algoritme? Naučite se povsem novega načina razvrščanja matrike z razvrščanjem Merge.

Preberite Naprej
Sorodne teme
  • Programiranje
  • Programiranje
  • Python
O avtorju Jerome Davidson(22 objavljenih člankov)

Jerome je osebni pisatelj pri MakeUseOf. Zajema članke o programiranju in Linuxu. Je tudi navdušenec nad kripto kripto in vedno spremlja kripto industrijo.

Več od Jeroma Davidsona

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e -knjige in ekskluzivne ponudbe!

Kliknite tukaj, če se želite naročiti