En basit sıralama algoritması
En basit sıralama algoritması hangisidir? Okullarda genel olarak bubble-sort gösteriyorlar, fakat ben insertion sort’u tercih ediyordum. Bugün ise gnome-sort diye bir algoritmayla karşılaştım. Neredeyse insertion-sort kadar hızlı çalışıyor, ve anlaması hem bubble-sort’tan hem de insertion-sort’tan daha kolay.
Verdiğim linkte c ile örnek bir kod yazılmış, ruby ile yazmak gerekirse de şöyle bir şeyler oluyor:
1 2 3 4 5 6 7 8 9 10 | def gnomesort!(a) i=1 while i i+=1 if a[i-1]<=a[i] else a[i], a[i-1] = a[i-1], a[i] i-=1 if i>1 end end end |
ruby’deki a,b=b,a yöntemi ne kadar müthiş değil mi? increment ve decrement operatörlerinin eksikliği ise hemen göze çarpıyor.
Etiketler: bubble sort, gnome sort, insertion sort, ruby, simplest sorting algorithm, sıralama algoritması


