Een inleiding tot het Shell Sort Algoritme

Een inleiding tot het Shell Sort Algoritme

Shell sort is een sorteertechniek die een bepaalde lijst in sublijsten verdeelt en deze vervolgens sorteert met behulp van insertion sort. Het algoritme gebruikt een gap N die items kiest die zijn N tussenruimte uit elkaar om de sublijsten te omvatten.





De sublijsten worden vervolgens gesorteerd met behulp van insertion sort, waarna ze worden gecombineerd. De gecombineerde lijst is niet volledig gesorteerd, maar geeft het algoritme het voordeel dat de items dichter bij hun uiteindelijke positie staan.





Invoegsortering wordt opnieuw gebruikt om de lijst uiteindelijk te sorteren.





Een nadere blik op Shell Sort

De bovenstaande beschrijving was misschien niet zo logisch, maar een voorbeeld zou moeten helpen. Stel dat je de lijst hebt: [39, 6, 2, 51, 30, 42, 7, 4, 16] en een tussenruimte van drie.

De eerste sublijst zou items bevatten: 39, 51, 7



De tweede sublijst: 6, 30, 4

dating-apps voor 18-jarigen

De derde en laatste sublijst: 2, 42, 16





Na invoegsortering zou elk van de sublijsten als volgt worden gerangschikt:

De eerste: 7, 39, 51





De tweede: 4, 6, 30

De derde: 2, 16, 42

De gesorteerde sublijst wordt nu op een bepaalde manier gecombineerd. Elk sublijstitem wordt in de index geplaatst waaruit de oorspronkelijke ongesorteerde sublijstwaarde is verzameld.

Verwant: Een inleiding tot het bellensorteeralgoritme

Je komt dus uit op onderstaande volgorde:

hoe verwijderde Facebook-berichten terug te krijgen

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

Merk op dat de lijst nog steeds niet is gesorteerd, maar dat de items dichter bij de posities staan ​​waarin ze zouden moeten staan. Na het uitvoeren van invoegsortering op deze lijstcombinatie, wordt de lijst uiteindelijk gesorteerd:

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

Algoritme Analyse

De complexiteit van schaalsoort ligt tussen O(n) en O(n2). De berekening voor deze conclusie valt buiten het bestek van dit artikel.

bank of america online bankieren is momenteel niet voor u beschikbaar

Python-implementatie:

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

Doorgaan met samenvoegen Sorteren

Er zijn verschillende sorteeralgoritmen, elk met een unieke werking. De merge sort gebruikt bijvoorbeeld een verdeel en heers strategie en heeft een complexiteit van O(nlogn).

Samenvoegen sorteren is in sommige gevallen beter dan shell sort en zeker het bekijken waard. Het zou de volgende moeten zijn op de leeslijst van uw sorteeralgoritmen.

Deel Deel Tweeten E-mail Een inleiding tot het samenvoegsorteeralgoritme

Datastructuren en algoritmen bestuderen? Leer een geheel nieuwe manier om uw array te sorteren met Sorteren samenvoegen.

Lees volgende
Gerelateerde onderwerpen
  • Programmeren
  • Programmeren
  • Python
Over de auteur Jerome Davidson(22 artikelen gepubliceerd)

Jerome is een stafschrijver bij MakeUseOf. Hij behandelt artikelen over programmeren en Linux. Hij is ook een crypto-enthousiasteling en houdt de crypto-industrie altijd in de gaten.

Meer van Jerome Davidson

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Klik hier om je te abonneren