Ir para conteúdo

bf0269714@gmail.com

Membros
  • Postagens

    2
  • Registro em

  • Última visita

  • Dias Ganhos

    1

bf0269714@gmail.com venceu a última vez em Fevereiro 22 2023

bf0269714@gmail.com tinha o conteúdo mais apreciado!

Conquistas de bf0269714@gmail.com

1

Reputação

  1. 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!
  2. Estou utilizando este código para uma busca binária, porém ao compilar, não me retorna a resposta desejada, não encontrei o erro, poderiam me dar um help? Muito obrigada. #include<iostream> // p. usar cout cin #include<new> // p. alocação de memória #include<string> // trabalhar com textos #include<stdlib.h> // implementa funções p. diversas operaões #include<locale.h> #define TAM 10 using namespace std; // p. utilisar cout cin void imprimeVetor(int vetor[TAM]){ int cont; // auxiliar contador //Imprime o vetor: for (cont = 0; cont < TAM; cont ++){ cout << vetor[cont] << " - "; } } int buscaBinaria(int vetor[TAM], int valorProcurado, int *posicaoEncontrada){ int esquerda = 0; // limite da esquerda int direita = TAM -1; // limite da direita int meio; // O meio onde fica o cursor while(esquerda <= direita){ meio = (esquerda + direita)/2; //Quando o valor do meio é encontrado: if(valorProcurado == vetor[meio]){ *posicaoEncontrada = meio; return 1; }else if(valorProcurado < vetor[meio]){ esquerda = meio -1; }else{ direita = meio +1; } } return -1; } int main(){ setlocale(LC_ALL, ""); int vetor[TAM] = {1, 29, 93, 75, 39, 03, 49, 90, 23, 20}; int valorProcurado; int posicao, posicaoEncontrada; //Auxiliar contador int cont; //Imprime o vetor na tela: imprimeVetor(vetor); cout << "Qual número deseja encontrar?"; cin >> valorProcurado; if(buscaBinaria(vetor, valorProcurado, &posicaoEncontrada) == 1){ cout << "O valor foi encontrado na posição:" << posicaoEncontrada; }else{ cout << "O valor não foi encontado."; } return 0; }
×
×
  • Criar Novo...