Boa tarde a todos,
Estou tentando escrever um código de qquick sort em c++ para ordenar a seguinte lista: {10, 9, 8, 7, 6, 5, 4, 3, 2, 1}, mas ao compliar não funciona, e me retorna apenas: Process returned -1073741571 (0xC00000FD) execution time : 1.072 s
Press any key to continue.
Este é o código que estou usando:
#include <iostream>
#include <stdlib.h>
#include <string>
#define TAM 10
using namespace std;
void imprimeVetor(int vetor[]){
int i;
cout << "\n";
for(i = 0; i < TAM; i++){
cout << "|" << vetor[i] << "|";
}
}
void swap(int vetor[], int pos1, int pos2){
int temp;
temp = vetor[pos1];
vetor[pos1] = vetor[pos2];
vetor[pos2] = temp;
}
int partittion(int vetor[], int menor, int maior, int pivot){
int i = menor;
int j = maior;
while(i <= maior){
if(vetor[i]> pivot){
i++;
}
else{
swap(vetor, i, j);
i++;
j++;
}
}
return j -1;
}
void quick_sort(int vetor[], int menor, int maior){
menor = 0;
maior = 10;
if(menor < maior){
int pivot = vetor[maior];
int pos = partittion(vetor, menor, maior, pivot);
quick_sort(vetor, menor, pos -1);
quick_sort(vetor, pos +1, maior);
}
}
int main(){
int vetor[TAM] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
quick_sort(vetor, 0, TAM);
imprimeVetor(vetor);
return 0;
}
Alguém consegue identificar o erro?
Muito obrigada!