Advertisement
Guest User

Untitled

a guest
Mar 19th, 2018
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. void budujKopiec(int *tab, int n);
  5. void rysujKopiec(int *tab, int n);
  6. void heapSort(int *tab, int n);
  7. int main()
  8. {
  9.  
  10. int n=5;
  11. int *tab=new int[n];
  12. tab[1]=5;
  13. tab[2]=1;
  14. tab[3]=8;
  15. tab[4]=3;
  16. tab[5]=7;
  17.  
  18. heapSort(tab,n);
  19.  
  20.  
  21.  
  22. return 0;
  23. }
  24. void budujKopiec(int *tab, int n){
  25. int i,j,k,x;
  26. for(i = 2; i <= n; i++){
  27. j = i;
  28. k = i / 2;
  29. x = tab[i];
  30. while((tab[k] < x)){
  31. tab[j] = tab[k];
  32. j = k;
  33. k = j / 2;
  34. }
  35. tab[j] = x;
  36. }
  37. }
  38. void rysujKopiec(int *tab, int n){
  39. for(int i = 1; i <= n; i++){
  40. cout<<tab[i]<<" ";
  41. }
  42. cout<<endl;
  43. }
  44. void heapSort(int *tab, int n){
  45. budujKopiec(tab,n);
  46. rysujKopiec(tab,n);
  47. swap(tab[1],tab[n]);
  48. //rysujKopiec(tab,--n);
  49.  
  50. int i=1;
  51. int l=i+1;
  52. int p=i+2;
  53. if(tab[l]>tab[p] && tab[l]>tab[i]) && l<=n{
  54. swap(tab[i],tab[i+1]);
  55. }
  56. else if(tab[p]>tab[l] && tab[p]>tab[i] && p<=n){
  57. swap(tab[i],tab[i+2]);
  58. }
  59.  
  60. rysujKopiec(tab,--n);
  61.  
  62.  
  63. }
  64. /*
  65. 1. Swtworzyc kopiec
  66. 2. Przedstawic /odczepic max
  67. 3. Ponownie stworzyc kopiec
  68. 2 i 3 w petli, az do konca
  69.  
  70. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement