algorytm.org

Implementacja w C/C++



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Sortowanie przez zliczanie (countingsort) - Implementacja w C/C++
Ocena użytkownikóww: *****  / 21
SłabyŚwietny
Nadesłany przez Michał Knasiecki, 13 sierpnia 2005 01:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.

count_c.cpp:
/*
Algorytm sortowania przez zliczanie (CountingSort)
Program pobrani ze strony www.algorytm.org
Opracowal: Michal Knasiecki
*/
#include<conio>
#include<stdio>
#include<stdlib>
int tablica[20];	//10-cio elementowa tablica do posortowania
int count[20];		//Talica pomocnicza
int c;
//
void countingsort(void)
{
int i,k;
for (i=0;i<20;i++) count[i]=0;//zerowanie tablicy pomocniczej
for (i=0;i<10;i++) count[tablica[i]]++; //pobieranie i-tego wyrazu z tablicy i
//zwiekszanie i-tego wyrazu tablicy pomocniczej
c=1;
for (i=0;i<20;i++)
        {
        if (count[i]>0) for (k=1;k<count[i]+1;k++)//tworzenie tablicy wynikowej
                {
                tablica[c]=i;
                c++;
                };
        };

}
void main(void)
{
int i;
//
randomize();
clrscr();
printf("Tablica przed posortowaniem:\n");
//Generowanie losowej tablicy liczb calkowitych z zakresu 0-20
for (i=1;i<11;i++)
	{
   tablica[i]=random(20);
   printf("%i\n",tablica[i]);
   }
countingsort();
printf("Tablica po posortowaniu:\n");
for (i=1;i<c;i++)
	{
   if (tablica[i]!=0)
   printf("%i\n",tablica[i]);
   }
printf("Dowolny klawisz\n");
getch();
}
Dodaj komentarz