Busca e ordenação de números
Publicado por Luciano Alexandre de Farias Silva (última atualização em 10/04/2013)
[ Hits: 7.777 ]
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;
}
}
}
}
Escrevendo um arquivo Unicode em C#
Equação do segundo grau em C++
Jogo: Acerte o número (com níveis de dificuldade)
Utilizando ESTRUTURA DE DADOS (REGISTRO) - abordagem simples e rápida
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
O programa assinador digital (0)
dpkg: erro: gatilho de arquivo duplicado chamado pelo arquivo de nome (6)
Instalação não está resolvendo as dependencias (2)
Captação de áudio no zorin linux começa a diminuir com o tempo (5)









