Sortowanie pozycyjne liczb

W tej sekcji zaimplementujemy algorytm sortowania pozycyjnego liczb wykorzystujący sortowanie przez zliczaniesortowanie przez zliczaniesortowanie przez zliczanie. Algorytm sortowania przez zliczaniePNx8quWZlsortowania przez zliczanie jest algorytmem stabilnymstabilny algorytm sortowaniaalgorytmem stabilnym, co oznacza, że po posortowaniu elementy o równej wartości będą ułożone w takiej samej kolejności, w jakiej były w nieposortowanym zbiorze. Jest to warunek niezbędny w sortowaniu pozycyjnym.

Problem 1

W lipcu 2008 roku CBOS przeprowadziło ankietę. Treść brzmiała następująco:

Niedawno Irlandczycy odrzucili w referendum traktat lizboński. Czy pana/pani zdaniem prezydent Polski powinien w tej sytuacji ratyfikować traktat lizboński, czy też nie?

Wyniki ankiety:

  • 34% odpowiedziało: „Trudno powiedzieć”,

  • 29% odpowiedziało: „Raczej tak”,

  • 23% odpowiedziało: „Zdecydowanie tak”,

  • 10% odpowiedziało: „Raczej nie”,

  • 4% odpowiedziało: „Zdecydowanie nie”.

Napisz program sortujący niemalejąco wyniki ankiety, dotyczącej opinii o traktacie lizbońskim, wykorzystując sortowanie pozycyjne liczb (radix sort). W implementacji użyj stabilnego algorytmu sortowania przez zliczanieP1EZiEgCSalgorytmu sortowania przez zliczanie (counting sort).

Specyfikacja:

Dane:

  • dane[] – jednowymiarowa tablica liczb naturalnych; dane do posortowania

  • liczbaElementow – liczba naturalna; długość tablicy dane

  • liczbaCyfr – liczba naturalna dodatnia; liczba cyfr tworzących największą liczbę z tablicy dane

Wynik:

  • dane – posortowana niemalejąco tablica liczb naturalnych

R1QIitUpZlGTt
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
Polecenie 1

Porównaj swoje rozwiązanie z przedstawionym w filmie.

R11oyFi2YbPVj
Lekcja poświęcona sortowaniu pozycyjnemu liczb w języku C++.

Kod programu zaprezentowanego w filmie:

R1ATFezbZDN7D

Przycisk do pobrania pliku CCP z kodem z filmu.

Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.
Plik CPP o rozmiarze 1.22 KB w języku polskim
Polecenie 2

Dodaj do swojego programu komentarze tak, żeby był zrozumiały dla osoby, która nie potrafi programować.

sortowanie przez zliczanie
sortowanie przez zliczanie

polega na sprawdzeniu, ile wystąpień kluczy mniejszych od danego występuje w sortowanej tablicy; algorytm przystosowany jest do sortowania zbioru liczb, które mogą posiadać skrajnie różne, niepowtarzające się wartości

stabilny algorytm sortowania
stabilny algorytm sortowania

algorytm sortowania, w którym elementy o równej wartości po posortowaniu będą ułożone w takiej samej kolejności, w jakiej były w nieposortowanym zbiorze