in Blog

Sortiranja nizova plesom

Sortiranje predstavlja jednu od osnovnih operacija koja se koristi u radu sa podacima. Danas da bi smo sortirali neki niz ne moramo da znamo algoritme za sortiranje. Dovoljno je da iz predefinisanih biblioteka programskog jezika u kojem radimo, pozovemo funkciju za sortiranje i naši podaci će biti složeni. U većini slučajeva ove funkcije će savršeno odraditi posao.

A šta da radimo u slučajevima kada gotova rešenja za sortiranje ne funcionišu kao što očekujemo?

Različiti tipovi podataka zahtevaju različite metode sortiranja. U nekim slučajevima je jeftinija operacija poređenja od operacije premeštanja, a u nekim je jeftinija operacija premeštanja. Nekad je i sama operacija pristupa jako skupa. U svakom slučaju najskuplje operacije je potrebno svesti na minimum. A nekad ni to nije dovoljno, nego je potrebno primeniti specijalne strategije da bi se sortiranje odradilo na najefikasniji način. Da bi smo znali kada je potrebno primeniti određeni algoritam moramo znati na koji način ovi algoritmi funkcionišu.

Osnovni način za upoznavanje sa načinom rada algoritama je njihova detaljna analiza. Postoje mnoge knjige koje se bave algoritmima i u svakoj su opisani algoritmi sortiranja na isti ili sličan način. Ovo nam govori da je sve jedno koju ćete knjigu uzeti da proučavate. Ako baš tražite preporuku, ja bih preporučio knjigu autora Donald Knuth-a “The Art of Computer Programming. U ovoj knjizi detaljno su detljno su opisani svi algoritmi sortiranja sa principima po kojima funkcionišu, a dati su i primeri koda.

Upustiti se u problematiku, shvatiti kako algoritmi rade i odabrati najoptimalniji za rešavanje našeg problema, može da bude komplikovan posao za programera početnika. Zadatak postaje još teži ako odmah ne shvatite šta je pisac hteo da kaže, pa daljim čitanjem pomislite da bi ste pre razumeli klingonski, nego napisano.

Opšte je poznato da se znanje mnogo lakše usvaja vizualnim putem. Iz tog razloga na ovom mestu ću vam umesto daljih preporuka knjiga i tekstova, predstaviti nekoliko snimaka koji će vam na jednostavan i zabavan način objasniti i približiti funkcionisanje algoritama sortiranja.

AlgoRythmics

Ekipa sa Fakulteta tehničkih i humanih nauka, Univerziteta Sapientia Târgu Mureș iz Rumunije, pre nekoliko godina napravila je interesantan projekat koji demonstrira algoritame sortiranja. Koristeći folklorni ples centralno evropskih naroda, napravili su drugačiji pristup rešavanju problema demonstracije rada algoritama, koji uvek predstavlja veliki izazov. Krajnji rezultat veoma kvalitetan i uspeh im je bio neminovan. Projekat je po objavljivanju privukao veliku pažnju i osvojio srca mnogih programera.

Hipnotišući ples, sa primerenom dozom lucidnosti predstaviće vam osnovne algoritme sortiranja, kao što su bubble sort, insert sort, select sort, shell sort, merge sort i quick sort. Za razumevanja načina rada algoritama ipak je neophodno minimalno teorijskog predznanja. Možda ovo nije najbolji način za učenje algoritama od nule, ali je svakako najinteresantniji koji sam do sada video.

Preostale video snimke sortiranja možete pogledati na njihovom YouTube kanalu.

Kako sortirati knjige u biblioteci

Učenje se najbolje usvaja kroz konkretne primere. Zato je sledeći video u tom stilu. Jednostavna objašnjenja i primer sortiranja knjiga za biblioteku krase sledeći video. On će vam predstaviti algoritme, kao i njihove mane i prednosti, takođe objasniće vam zašto je za neke stvari bolje odabrati jedan algoritam, a u drugom slučaju drugi.

Na YouTube-u možete pronaći još mnogo primera kako rade ovi algoritmi i u kojim se finesama razlikuju. Pogledajte ih i proučite sledeći put kada budete imali problema sa sortiranjem. Možda će vam tada biti jasnije zašto u vašem konkretnom slučaju treba primeniti shell sort umesto buble sorta.

Write a Comment

Comment