Ir para conteúdo
Fórum Script Brasil

Barbaraa

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Sobre Barbaraa

Barbaraa's Achievements

0

Reputação

  1. Barbaraa

    Quick Sort c++

    Boa tarde!! Estou tentando escrever um código de Quick Sort par organizar a seguinte lista: {10, 9, 8, 7, 6, 5, 4, 3, 2, 1}. Para isso, utilizei o código abaixo: #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; } Porém ao compilá lo não obtenho o resultado esperado e sim apenas o seguinte retorno: Process returned -1073741571 (0xC00000FD) execution time : 1.256 s Press any key to continue. Alguém consegue me ajudar com esta questão? Muito obrigada!
  2. Barbaraa

    Busca Binária

    Boa tarde pessoal, Estou utilizando este código para uma busca binária, porem 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...