Momencik, trwa przetwarzanie danych   loading-animation

faktopedia.pl

Pokaż menu
Szukaj

Sortowanie przez zliczanie to sposób sortowania liczb bez wykorzystania

by derekq
Zobacz następny
Dodaj nowy komentarz
avatar passingby
0 0

Nie. W algorytmie nie ma, przy sporej dozie interpretacyjnej dobroduszności, porównań tylko pomiędzy poszczególnymi elementami zbioru, jednak jak najbardziej występują np. przy porównywaniu danego elementu z elementami w strukturze, gdzie przechowywany jest licznik czy przy przygotowaniu tej struktury. I w tym ostatnim przypadku tak naprawdę leży pies pogrzebany, bo ta struktura musi być już przygotowana posortowana. Trzeba więc najpierw przeprowadzić jakieś porównania na naszym zbiorze do sortowania, żeby znać minimalną i maksymalną wartość w nim, a później zapełnić wartości pomiędzy nimi.

Odpowiedz

Zmodyfikowano 3 razy. Ostatnia modyfikacja: 25 stycznia 2017 o 14:11

avatar Hauleth
1 1

@passingby: otóż w przypadku, gdy możemy zastosować sortowanie przez zliczanie (czyli mamy znany zbiór liczb naturalnych ograniczony z góry i z dołu, ze znanymi ograniczeniami) możemy spokojnie powiedzieć, że żadne porównania nie następują. Zapisujemy wartości do wektora, a wtedy nie trzeba nic porównywać, bo wystarczy znać początek oraz przesunięcie.

Odpowiedz
avatar passingby
0 0

@Hauleth: No ok, w takim przypadku nie będzie porównań między elementami zbioru. Ale w samym algorytmie są pętle, a w nich jest porównywanie, żeby sprawdzić warunek końcowy. Nawet jeśli zostanie to ukryte w jakiejś abstrakcji jak iterator czy for-each, to gdzieś w głębi dalej są zaszyte te porównania. Chyba że znasz też z góry liczbę elementów w zbiorze i odwiniesz kompletnie wszystkie pętle. To wtedy tak, nie będzie żadnych porównań.

Odpowiedz
Udostępnij