[cpp] Quick sort

Viewer

copydownloadembedprintName: Quick sort
  1. int sort::partir(std::string vetor[]int esq, int dir)
  2. {
  3.     std::string pivo = vetor[(esq + dir) / 2];
  4.  
  5.     std::cout << "decidiu o pivo sendo: '" <<  pivo << "'." << std::endl;
  6.     
  7.     int i = esq - 1;
  8.     int j = dir + 1;
  9.     
  10.     while (1)
  11.     {
  12.         do { i += 1;
  13.         } while (minElemento(vetor[i], pivo) == vetor[i]);
  14.         
  15.         do { j -= 1;
  16.         } while (minElemento(vetor[j], pivo) == pivo);
  17.         
  18.         if (>= j) return j;
  19.         
  20.         std::string aux = vetor[i];
  21.         vetor[i] = vetor[j];
  22.         vetor[j] = aux;
  23.     }
  24. }
  25.  
  26. void sort::quickSort(std::string vetor[]int esq, int dir) {
  27.         std::cout << "---começou um mergeSort no esq = " << esq << " e dir = " << dir << std::endl;
  28.  
  29.         for (int i = 0; i < dir; i++)
  30.         {
  31.             std::cout << vetor[i] << std::endl;
  32.         }
  33.     if (esq < dir) {
  34.         int pivo = partir(vetor, esq, dir);
  35.         quickSort(vetor, esq, pivo);
  36.         quickSort(vetor, pivo + 1, dir);
  37.     }
  38. }

Editor

You can edit this paste and save as new:


File Description
  • Quick sort
  • Paste Code
  • 18 Apr-2024
  • 1020 Bytes
You can Share it: