Busca e ordenação de números
Publicado por Luciano Alexandre de Farias Silva (última atualização em 10/04/2013)
[ Hits: 7.853 ]
Homepage: http://www.tecsource.blogspot.com.br/
Um pequeno algoritmo em C++ com duas funções: Uma para ordenar um Vetor de números e outra, para buscar um número qualquer nesse Vetor.
#include<iostream>
using namespace std;
float busca(float num, float n, float x[100]) ;
void bubblesort(int n, float x[100]);
int main(void) {
float x[100], num;
int n, i;
bool achou;
do {
cout << "Quantos números?" <<endl;
cin >> n;
} while(n <= 0 || n > 100);
cout << "Digite os números: "<<endl;
for(i = 0; i <= n-1; i++) {
cin >> x[i];
}
bubblesort(n, x);
cout << "Vetor ordenado: " <<endl;
for(i = 0; i < n ; i++){
cout << x[i] <<" ";
}
cout << "\nDigite o número que procura: "<<endl;
cin >> num;
achou = busca(num, n , x);
if(achou){
cout << "Número encontrado.";
}else{
cout << "Número não encontrado";
}
return 0;
}
float busca(float num, float n, float x[100] ) {
int meio, alto, baixo;
alto = n - 1;
baixo = 0;
bool achou = false;
while( baixo <= alto && (!achou)){
meio = (baixo + alto)/2;
if(num < x[meio]){
alto = meio - 1;
} else if(num > x[meio]){
baixo = meio + 1;
}else {
achou = true;
}
}
return achou;
}
void bubblesort( int n, float x[100]){
float aux;
int j, i;
for(i = 0; i < n-1; i++){
for(j=i+1; j < n ; j++){
if(x[i] > x[j]){
aux = x[i];
x[i] = x[j];
x[j] = aux;
}
}
}
}
Imprimir primeiras letras de uma String
Conta e substitui caracteres de uma frase
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como implementar Raid (0, 1, 5, 6, 10 e 50)
fusermount3 no Ubuntu 25.10 - mantenha o perfil do AppArmor
[Resolvido] dlopen(): error loading libfuse.so.2 AppImages require FUSE to run.
Criação de diretórios e aplicação de restrições de acesso no Linux
Servidor de DNS BIND Ubuntu server (4)
Como programar um sistema de controle para distribuições linux em c? (2)
Compartilhar ZEBRA ZD220 na rede (2)
Como programar um software que seja utilizado para coleta de dados em ... (1)









