A kagyló rendezése olyan rendezési technika, amely egy adott listát allistákra oszt, majd beszúrási rendezéssel rendezi őket. Az algoritmus rést használ n amely olyan tárgyakat választ n szakadék az allistákhoz.
Az allistákat ezután beszúrási rendezéssel rendezik, majd egyesítik. A kombinált lista nincs teljesen rendezve, de az algoritmus előnye, hogy az elemek közelebb vannak a végső pozíciójukhoz.
A beszúrási rendezést ismét a lista végső rendezésére használják.
Közelebbről a Shell Sort
Lehet, hogy a fenti leírásnak nem sok értelme volt, de egy példa segíthet. Tegyük fel, hogy megvan a lista: [39, 6, 2, 51, 30, 42, 7, 4, 16] és a hézag értéke három.
Az első allistán elemek lennének: 39, 51, 7
A második allista: 6, 30, 4
hogyan készítsek ellenőrző listát az Excel -ben
A harmadik és utolsó allista: 2, 42, 16
A beillesztés rendezése után az egyes allistákat az alábbiak szerint soroljuk fel:
Az első: 7, 39, 51
A második: 4, 6, 30
A harmadik: 2, 16, 42
A rendezett allista most meghatározott módon kombinálódik. Minden allistás elem bekerül az indexbe, amelyből az eredeti rendezés nélküli allista értékét gyűjtötték.
Összefüggő: Bevezetés a buborékrendező algoritmusba
Ezért az alábbi sorrendben végez:
a számítógép nem ébred fel alvásból
[7, 4, 2, 39, 6, 16, 51, 30, 42]
Figyelje meg, hogy a lista még mindig nincs rendezve, de az elemek közelebb vannak azokhoz a pozíciókhoz, amelyekben állniuk kell. Miután végrehajtotta a beszúrási rendezést ezen a listakombináción, a lista végül rendezésre kerül:
[2, 4, 6, 7, 16, 30, 39, 42, 51]
Algoritmus elemzés
A héjrendezés összetettsége O (n) és O (n2) között van. Ennek a következtetésnek a kiszámítása túlmutat a cikk keretein.
hogyan lehet elérni az Android telefont a számítógépen
Python implementáció:
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
Tovább az egyesítési rendezéshez
Számos rendezési algoritmus létezik, mindegyik egyedi működéssel. Az egyesítési sorrend például megosztási és hódítási stratégiát alkalmaz, és összetettsége O (nlogn).
A Merge sort bizonyos esetekben jobb, mint a shell sort, és mindenképpen érdemes megnézni. A következőnek kell lennie a rendezési algoritmusok olvasási listájában.
Részvény Részvény Csipog Email Bevezetés az egyesítési rendezési algoritmusbaTanulmányozza az adatstruktúrákat és az algoritmusokat? Tanuljon meg egy teljesen új módot a tömb rendezésére a Merge sort használatával.
Olvassa tovább Kapcsolódó témák- Programozás
- Programozás
- Piton
Jerome a MakeUseOf munkatársa. A programozásról és a Linuxról szóló cikkekkel foglalkozik. Szintén kriptorajongó, és mindig figyelemmel kíséri a kriptoipart.
További Jerome DavidsonIratkozzon fel hírlevelünkre
Csatlakozz hírlevelünkhöz, ahol technikai tippeket, értékeléseket, ingyenes e -könyveket és exkluzív ajánlatokat találsz!
Feliratkozáshoz kattintson ide