[cpp] Quick sort
Viewer
- int sort::partir(std::string vetor[], int esq, int dir)
- {
- std::string pivo = vetor[(esq + dir) / 2];
- std::cout << "decidiu o pivo sendo: '" << pivo << "'." << std::endl;
- int i = esq - 1;
- int j = dir + 1;
- while (1)
- {
- do { i += 1;
- } while (minElemento(vetor[i], pivo) == vetor[i]);
- do { j -= 1;
- } while (minElemento(vetor[j], pivo) == pivo);
- if (i >= j) return j;
- std::string aux = vetor[i];
- vetor[i] = vetor[j];
- vetor[j] = aux;
- }
- }
- void sort::quickSort(std::string vetor[], int esq, int dir) {
- std::cout << "---começou um mergeSort no esq = " << esq << " e dir = " << dir << std::endl;
- for (int i = 0; i < dir; i++)
- {
- std::cout << vetor[i] << std::endl;
- }
- if (esq < dir) {
- int pivo = partir(vetor, esq, dir);
- quickSort(vetor, esq, pivo);
- quickSort(vetor, pivo + 1, dir);
- }
- }
Editor
You can edit this paste and save as new: