Advertisement
EduPsEudo

Quick Sort

May 22nd, 2022
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.42 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. const int TAM_ARRAY = 6;
  6.  
  7. void printLista(int array[])
  8. {
  9.     int i;
  10.     cout << "[";
  11.     for (i = 0; i < TAM_ARRAY; i++)
  12.     {
  13.         if (i == TAM_ARRAY - 1) {
  14.             cout << array[i] << "]\n";
  15.             break;
  16.         }
  17.         cout << array[i] << ", ";
  18.     }
  19. }
  20.  
  21. int particionar(int array[], int inicio, int fim)
  22. {
  23.     int esq, dir, pivo, aux;
  24.     esq = inicio;
  25.     dir = fim;
  26.     pivo = array[inicio];
  27.  
  28.     while (esq < dir)
  29.     {
  30.         while (array[esq] <= pivo && esq <= fim)
  31.             esq++;
  32.         while (array[dir] > pivo && dir >= 0)
  33.             dir--;
  34.  
  35.         if (esq < dir)
  36.         {
  37.             aux = array[esq];
  38.             array[esq] = array[dir];
  39.             array[dir] = aux;
  40.         }
  41.     }
  42.  
  43.     array[inicio] = array[dir];
  44.     array[dir] = pivo;
  45.     return dir;
  46. }
  47.  
  48. void quickSort(int array[], int inicio, int fim)
  49. {
  50.     int pivo;
  51.     if (inicio >= fim) return;
  52.  
  53.     pivo = particionar(array, inicio, fim);
  54.     // cout << "Pivo: " << array[pivo] << " - ";
  55.     // printLista(array);
  56.     quickSort(array, inicio, pivo - 1);
  57.     quickSort(array, pivo + 1, fim);
  58. }
  59.  
  60. int main()
  61. {
  62.     int array[TAM_ARRAY] = {5, 4, 3, 7, 1, 6};
  63.     int i;
  64.  
  65.     cout << "Antes da ordenacao: ";
  66.     printLista(array);
  67.  
  68.     quickSort(array, 0, TAM_ARRAY - 1);
  69.  
  70.     cout << "Depois da ordenacao: ";
  71.     printLista(array);
  72.  
  73.     return 0;
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement