Advertisement
imarosi

Számlálós rendezés

Jan 30th, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.49 KB | None | 0 0
  1. // Egyik lehetőség:
  2. // Ha van olyan számérték, ami tuti nem fordulhat elő (mondjuk -1), azt használjuk
  3. // annak jelzésére, hogy nincs még oda írva semmi.
  4.  
  5. int a[50], n;
  6. cin>>n;
  7.  
  8. for (int i=0; i<n; i++)
  9.     cin>>a[i];
  10.  
  11. int db, b[50];
  12.  
  13. // Feltöltjük a b[] tömböt olyan értékkel, ami tuti nem lehet benne:
  14. for (int i=0; i<n; i++)     // új kód
  15.     b[i] = -1;              // új kód
  16.  
  17. for (int i=0; i<n; i++)
  18. {
  19.     db=0;
  20.     for (int j=0; j<n; j++)
  21.         if (a[i]>a[j]) db++;
  22.     // volt-e már db-edik?
  23.     // ha volt már, akkor a következő üres helyre kell tenni
  24.     while (b[db] != -1)     // új kód
  25.         db++;               // új kód
  26.     b[db]=a[i];
  27. }
  28.  
  29. for (int i=0; i<n; i++)
  30.     cout<<b[i]<<" ";
  31.  
  32. ////////////////////////////////////////////////////////////////////////////////
  33. // Másik lehetőség:
  34. // Egy külön tömböt használunk annak jelzésére, hogy nincs még feltöltve egy elem
  35. // Ez kicsit hosszabb, de működik akkor is, ha lehetnek negatív számok is.
  36.  
  37. int a[50], n;
  38. cin>>n;
  39.  
  40. for (int i=0; i<n; i++)
  41.     cin>>a[i];
  42.  
  43. int db, b[50];
  44. bool c[50];                 // új kód
  45.  
  46. // Feltöltjük a c[] tömböt false-szal
  47. for (int i=0; i<n; i++)     // új kód
  48.     c[i] = false;           // új kód
  49.  
  50. for (int i=0; i<n; i++)
  51. {
  52.     db=0;
  53.     for (int j=0; j<n; j++)
  54.         if (a[i]>a[j]) db++;
  55.     // van-e már db-edik?
  56.     // ha van, akkor a következő üres helyre kell tenni
  57.     while (c[db] == true)   // új kód
  58.         db++;               // új kód
  59.     b[db]=a[i];
  60.     c[db]=true;             // új kód
  61. }
  62.  
  63. for (int i=0; i<n; i++)
  64.     cout<<b[i]<<" ";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement