A héj rendezése PHP-re
A kedves idő a nap, kedves olvasók!
A mai cikket szeretném egy másik csodálatos válogatási algoritmushoz fordítani, amely Donald Schell nevét viseli.
Nem titok, hogy a Shell válogatás gyakran lassabban működik, mint a gyors válogatás (Hoare válogatás), amelyet az előző cikkek egyikében vettem figyelembe. Azonban a gyors válogatás gyorsan lefagy a másodfokú összetettséghez egy sikertelen adatsorral, ami a legrosszabb eredmény, mint a Shell válogatás legrosszabb ideje.
A válogatás során összehasonlítjuk és rendezzük az elemeket egy tömbben, egymástól elkülönítve az n cellák. Ezután n csökken, és az eljárás ismétlődik n frissített értékével. Mindaddig, amíg n nem csökken 1-re.
Miután kiválasztotta a távolságokat, továbbléphet.
Mint mindig, a rendezett tömböt referenciaként továbbítjuk a függvénynek. Például, minden egyes iterációnál kétszer csökkentem a lépést.
A hurok testében összegyűjtjük azokat az értékeket, amelyeknek a kulcsait a hurokban meghatározott lépés választja el egymástól, és egy egyszerű beillesztéssel rendezi őket.
A válogatás eredményét itt láthatja:
Ehhez ma, mindent! Egyértelmű kód az Ön számára!