Busca e ordenação de números
Publicado por Luciano Alexandre de Farias Silva (última atualização em 10/04/2013)
[ Hits: 7.873 ]
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;
}
}
}
}
Arquivo introdutório para chamadas de funções
Bluefin - A nova geração de ambientes de trabalho Linux
Como atualizar sua versão estável do Debian
Cirurgia para acelerar o openSUSE em HD externo via USB
Quer auto-organizar janelas (tiling) no seu Linux? Veja como no Plasma 6 e no Gnome
Copiando caminho atual do terminal direto para o clipboard do teclado
Script de montagem de chroot automatica
Conky não mostra temperaturas da CPU no notebook (0)
Não estou conseguindo fazer funcionar meu Postfix na versão 2.4 no Deb... (0)









