Advertisement
Guest User

Untitled

a guest
Dec 11th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.30 KB | None | 0 0
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <cstdlib>
  4. #include <ctime>
  5. #include <fstream>
  6. #include <string>
  7.  
  8. using namespace std;
  9.  
  10. void rozklad(int tab[], int n, int i )
  11. {
  12. int dl = i;
  13. int l = 2 * i + 1;
  14. int r = 2 * i + 2;
  15.  
  16.  
  17.  
  18. if (l < n && tab[l] > tab[dl])
  19. dl = l;
  20.  
  21. if (r < n && tab[r] > tab[dl])
  22. dl = r;
  23.  
  24. if (dl != i)
  25. {
  26.  
  27. swap(tab[i], tab[dl]);
  28. rozklad(tab, n, dl);
  29. }
  30. }
  31.  
  32. void heapSort(int tab[], int n)
  33. {
  34.  
  35. for (int i = n / 2 - 1; i >= 0; i--)
  36. rozklad(tab, n, i);
  37. //Bez tego program nie bedzie dziaล‚aล‚
  38. cout << "Jan Pawel jebal malego Dominika <3" << endl;
  39. for (int i = n - 1; i >= 0; i--)
  40. {
  41. swap(tab[0], tab[i]);
  42.  
  43. rozklad(tab, i, 0);
  44. }
  45. }
  46.  
  47.  
  48. int main()
  49. {
  50. ifstream dane("dane.txt");
  51. ofstream zapis("wynik.txt");
  52. int n, ki;
  53.  
  54. dane >> n;
  55. for (int i = 0; i < n; i++)
  56. {
  57. dane >> ki;
  58. int* tab = new int[ki];
  59. int* tab2 = new int[ki];
  60. cout << "przed sort: " << endl;
  61. for (int j = 0; j < ki; j++)
  62. {
  63. dane >> tab[j];
  64. tab2[j] = tab[j];
  65. cout << tab[j] << " ";
  66.  
  67. }
  68. cout << endl;
  69. cout << "po sort: " << endl;
  70. heapSort(tab, ki);
  71. int pow = 0;
  72. for (int j = 0; j < ki; j++)
  73. {
  74. if (tab[j] == tab2[j])
  75. pow++;
  76.  
  77. }
  78. if (pow == ki)
  79. zapis << "tak";
  80. else
  81. zapis << "nie";
  82. cout << endl;
  83. }
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement