Elemanları belirli aralıklarla tanımlanmış alt bölmelere (kovalara) dağıtıp, her bölmeyi kendi içinde sıralayarak birleştiren algoritmadır.
Kova Sıralaması (Bucket Sort veya Bin Sorting), elemanları değer aralıklarına göre sınıflara ayırarak sıralayan bir "böl ve yönet" yaklaşımıdır. Veri kümesinin yaklaşık olarak düzgün (uniform) bir dağılım sergilediği durumlarda son derece etkilidir.
Algoritma, girdi aralığını eşit büyüklükte alt aralıklara (kovalara) böler. Ardından her girdi elemanını ilgili olduğu kovaya atar. Kovalardaki eleman sayısı az olduğundan, her kova kendi içinde hızlı bir sıralama algoritması (örneğin Insertion Sort) ile sıralanır. Son adımda, kovalardaki sıralı elemanlar sırayla birleştirilir.
Aho notlarında bu yöntem "Bin Sorting" olarak adlandırılır ve linked list yapıları kullanılarak bellek verimliliğinin artırılabileceği gösterilir.
Aşağıdaki uygulamalar PDF kaynaklarındaki pseudo kod akışını modern veri yapılarıyla ifade eder. Kenar durumları görünür bırakıldığı için örnekler doğrudan test edilebilir.
1function bucketSort(arr: number[]): number[] {2 if (arr.length === 0) return arr;3 const min = Math.min(...arr);4 const max = Math.max(...arr);5 const bucketCount = Math.floor(Math.sqrt(arr.length)) || 1;6 const buckets: number[][] = Array.from({ length: bucketCount }, () => []);78 const range = (max - min) / bucketCount || 1;9 for (const num of arr) {10 let index = Math.floor((num - min) / range);11 if (index >= bucketCount) index = bucketCount - 1;12 buckets[index].push(num);13 }1415 const result: number[] = [];16 for (const bucket of buckets) {17 bucket.sort((a, b) => a - b); // Kovalarda küçük sıralama18 result.push(...bucket);19 }20 return result;21}Sıralanacak sayıları virgülle ayırarak girin. Örnek: 0.78, 0.17, 0.39, 0.26, 0.72, 0.94, 0.21
Sıralanacak sayıları virgülle ayırarak girin. Örnek: 0.78, 0.17, 0.39, 0.26, 0.72, 0.94, 0.21
En İyi Durum: O(n + k)
Ortalama Durum: O(n)
En Kötü Durum: O(n^2)
O(n + k) - Bu algoritmanın karmaşıklığı belirtilmemiş.
Kova Sıralaması (Bin Sorting / Bucket Sort) Algoritması ile benzer veya alternatif olarak değerlendirilebilecek diğer başlıklar: