Sortowanie kubełkowe
ilustracja
Rodzaj

Sortowanie

Struktura danych

Tablica, lista

Złożoność
Czasowa

Pamięciowa

Sortowanie kubełkowe (ang. bucket sort) – jeden z algorytmów sortowania, najczęściej stosowany, gdy liczby w zadanym przedziale są rozłożone jednostajnie, ma on wówczas złożoność Θ(n)[1]. W przypadku ogólnym pesymistyczna złożoność obliczeniowa tego algorytmu wynosi O(n²)[potrzebny przypis].

Pomysł takiego sortowania podali po raz pierwszy w roku 1956 E. J. Issac i R. C. Singleton[2].

Sposób działania

edytuj

Idea działania algorytmu sortowania kubełkowego[1]:

  1. Podziel zadany przedział liczb na k podprzedziałów (kubełków) o równej długości.
  2. Przypisz liczby z sortowanej tablicy do odpowiednich kubełków.
  3. Sortuj liczby w niepustych kubełkach.
  4. Wypisz po kolei zawartość niepustych kubełków.

Zazwyczaj przyjmuje się, że sortowane liczby należą do przedziału od 0 do 1[potrzebny przypis] - jeśli tak nie jest, to można podzielić każdą z nich przez największą możliwą (jeśli znany jest przedział) lub wyznaczoną. Należy tu jednak zwrócić uwagę, że wyznaczanie największej możliwej liczby w tablicy m-elementowej ma złożoność obliczeniową O(m).

Pseudokod

edytuj

Algorytm sortowania kubełkowego wyrażony w pseudokodzie[3]:

function bucket-sort(array, n) is
  buckets ← new array of n empty lists
  for i = 0 to (length(array)-1) do
    insert array[i] into buckets[msbits(array[i], k)]
  for i = 0 to n – 1 do
    next-sort(buckets[i])
  return the concatenation of buckets[0], ..., buckets[n-1]

Przypisy

edytuj

Bibliografia

edytuj
  • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein: Wprowadzenie do algorytmów. Wydawnictwa Naukowo-Techniczne, 2007. ISBN 978-83-204-3328-9. OCLC 749241843.
  • Samanta Debasis: Classic Data Structures 2Nd Ed.. Prentice-Hall Of India Pvt. Limited, 2009. ISBN 81-315-1089-1.

📚 Artikel Terkait di Wikipedia

Piroelektryk

2024-07-03] . Anthony J.A.J. Holden Anthony J.A.J., Applications of pyroelectric materials in array-based detectors, „IEEE Transactions on Ultrasonics, Ferroelectrics

Merkury

tego adresu (2011-09-27)]. (ang.). R.A. Lyttleton. On the Internal Structures of Mercury and Venus. „Astrophysics and Space Science”. 1 (5), s. 18, 1969

Sortowanie Shella

1-sortowaniu: 07 17 18 25 28 47 53 62 69 83 86 95 {\displaystyle {\begin{array}{rc}&a_{1}&a_{2}&a_{3}&a_{4}&a_{5}&a_{6}&a_{7}&a_{8}&a_{9}&a_{10}&a_{11

Koherencyjna tomografia optyczna

detector array. „Opt Lett”. 26 (8), s. 512–514, Apr 2001. PMID: 18040369.  J. Dörr, K.D. Wernecke, M. Bock, G. Gaede i inni. Association of retinal and

Skaningowy mikroskop elektronowy

for backscattered electrons, „Journal of Vacuum Science & Technology B: Microelectronics and Nanometer Structures”, 25 (6), 2007, s. 2425, DOI: 10.1116/1

Antoni Kreczmar

danych [Banachowski, Kreczmar i Rytter 1987 ↓ ], Analysis of Algorithms and Data Structures [Banachowski, Kreczmar i Rytter 1991 ↓ ] Jest współautorem

Świadomość kwantowa

neuromelanin "quantum dot" array structures in dopamine neurons of the substantia nigra pars compacta and norepinephrine neurons of the locus coeruleus. „Biosystems”

PDS 70

inni, Polarimetric Imaging of Large Cavity Structures in the Pre-transitional Protoplanetary Disk around PDS 70: Observations of the disk, „The Astrophysical