Barbaraa
-
Total de itens
2 -
Registro em
-
Última visita
Posts postados por Barbaraa
-
-
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 10using 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 cursorwhile(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;
}
Quick Sort c++
em C, C++
Postado
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!