rootuss

porzadkowanie przez zliczanie

Feb 13th, 2017
202
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <time.h>
  4. #include <conio.h>
  5. using namespace std;
  6.  
  7. void wczytajlosowe (int T[], int n, int m)
  8. {
  9.     srand(time(NULL));
  10.     for (int i=0; i<n; i++)
  11.         T[i]=rand()%(m+1);
  12. }
  13.  
  14. int wprowadz (int T[], int n)
  15. {
  16.     int maximum=0;
  17.     for (int i=0; i<n; i++)
  18.     {
  19.         cout<<"Podaj "<<i+1<<". element tablicy: ";
  20.         cin>>T[i];
  21.         cout<<endl;
  22.         if (T[i]>maximum) maximum=T[i];
  23.         system("cls");
  24.     }
  25.     return maximum;
  26. }
  27.  
  28. void porzadkuj (int T[], int n, int m)
  29. {
  30.     int P[m+1]={0};
  31.     for (int i=0; i<n; i++) P[T[i]]++;
  32.     int k=0;
  33.     for (int i=0; i<m+1; i++)
  34.         for (int j=P[i]; j>=1; j--)
  35.     {
  36.         T[k]=i;
  37.         k++;
  38.     }
  39.  
  40. }
  41.  
  42. int main()
  43. {
  44.     int k, n, m;
  45.     cout<<"Ilu elementowa tablice chcesz wygenerowac?"<<endl;
  46.     cin>>n;
  47.     int tablica[n];
  48.     cout<<"----------------------MENU----------------------"<<endl;
  49.     cout<<"1. wylosuj elementy tablicy"<<endl;
  50.     cout<<"2. chce wprowadzic poszczegolne elementy tablicy"<<endl;
  51.  
  52.  
  53.     do k=getch(); while (k!='1'&&k!='2');
  54.     system("cls");
  55.     switch(k)
  56.     {
  57.         case '1': cout<<"podaj przedzial wartosci elementow w tablicy <0, ?>"<<endl;
  58.                  cin>>m;
  59.                  wczytajlosowe(tablica, n, m); break;
  60.  
  61.         case '2': m=wprowadz(tablica, n); break;
  62.     }
  63.     porzadkuj(tablica, n, m);
  64.     for (int i=0; i<n; i++)
  65.     {
  66.         cout<<tablica[i]<<endl;
  67.     }
  68.     return 0;
  69. }
RAW Paste Data