Este algoritmul de sortare găleată?
Este algoritmul de sortare găleată?

Video: Este algoritmul de sortare găleată?

Video: Este algoritmul de sortare găleată?
Video: Bucket Sort Algorith / Radix Sort Algorithm | Bucket Sort In Data Structure | Simplilearn 2024, Noiembrie
Anonim

Nu, nu este un in- loc triere algoritm . Întreaga idee este acea intrare feluri ei înșiși pe măsură ce sunt mutați în găleți . În cele mai rele dintre cazurile bune (valori secvențiale, dar fără repetare) spațiul suplimentar necesar este la fel de mare ca și matricea originală.

În acest fel, ce algoritmi de sortare sunt aplicați?

Ca un alt exemplu, mulți algoritmi de sortare rearanjează matricele în ordine sortată la locul lor, inclusiv: sortare cu bule , sortare pieptene, sortare selecție, sortare de inserare , heapsort și Shell sort. Acești algoritmi necesită doar câțiva pointeri, astfel încât complexitatea lor spațială este O(log n). Quicksort operează în loc pe datele care urmează să fie sortate.

Ulterior, întrebarea este cum funcționează un algoritm de sortare a găleților? Sortare cu găleată , sau sortare bin , este a algoritm de sortare acea lucrări prin distribuirea elementelor unui tablou într-un număr de găleți . Fiecare găleată este atunci sortat individual, fie folosind un alt algoritm de sortare , sau prin aplicarea recursiv algoritm de sortare a găleților . Configurați o matrice de " inițial goale" găleți ".

În consecință, cum implementați un algoritm de sortare a găleților?

  1. Să presupunem că matricea de intrare este: Creați o matrice de dimensiunea 10.
  2. Introduceți elemente în găleți din matrice. Elementele sunt introduse în funcție de raza găleții.
  3. Elementele fiecărei găleți sunt sortate folosind oricare dintre algoritmii de sortare stabili.
  4. Elementele din fiecare găleată sunt adunate.

Unde se folosește sortarea cu găleată?

Sortare cu găleată este util în principal atunci când intrarea este distribuită uniform într-un interval. De exemplu, luați în considerare următoarea problemă. Fel un set mare de numere în virgulă mobilă care se află în intervalul de la 0,0 la 1,0 și sunt distribuite uniform în intervalul.

Recomandat: