Advertisement
Guest User

Untitled

a guest
Jul 25th, 2016
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.86 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. void maxHeapify(int vetor[], int i, int n){
  4. int esq, dir, maior, temp;
  5. esq = 2*i + 1;
  6. dir = 2*i + 2;
  7.  
  8. if(esq >= 1 && esq <=n && vetor[esq] > vetor[i]){
  9. maior = esq;
  10. }else{
  11. maior = i;
  12. }
  13.  
  14. if(dir >= 1 && dir <= n && vetor[dir] > vetor[maior]){
  15. maior = dir;
  16. }
  17.  
  18. if(maior !=i ){
  19. temp = vetor[i];
  20. vetor[i] = vetor[maior];
  21. vetor[maior] = temp;
  22. maxHeapify(vetor, maior, n);
  23. }
  24. }
  25.  
  26. void buildMaxHeap(int vetor[], int n){
  27. int i;
  28. for(i=(n-1/2); i>=0 ; i--){
  29. maxHeapify(vetor, i, n-1);
  30. }
  31. }
  32.  
  33. void heapSort(int vetor[], int n){
  34. int i, temp;
  35. buildMaxHeap(vetor, n);
  36. for(i=(n-1); i>=1; i--){
  37. temp = vetor[0];
  38. vetor[0] = vetor[i];
  39. vetor[i] = temp;
  40. maxHeapify(vetor, 0, i-1);
  41. }
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement