Conforme vayamos avanzando en nuestra carrera como programadores nos
daremos cuenta de que hay muchas funciones y trozos de código que necesitaremos
muy frecuentemente.
Foto tomada de freedigitalphotos.net |
Por lo general esta clase de funciones se suelen agrupar en paquetes o
librerías, de ésta forma no tenemos que escribir el mismo código muchas veces.
Como hemos visto los arrays en el sexto capítulo del curso básico de C, voy
a facilitar dos algoritmos que usaremos muy frecuentemente al trabajar con
arrays y necesitemos manejar grandes cantidades de datos, la búsqueda dicotómica
y la ordenación por burbuja.
Con la búsqueda dicotómica podemos acceder a un array ordenado y buscar un
dato concreto, gracias a éste algoritmo podremos localizar información dentro
de un array de una forma muy sencilla.
Con la ordenación por el método de la burbuja podremos ordenar todos los
datos que contenga un array, esto nos viene muy bien para poder tener los datos
organizados, facilitará la búsqueda de valores concretos y el mantenimiento se
nos hará mucho más fácil.
Los códigos son los siguientes:
Búsqueda dicotómica:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int vector[10], n=10, dato, centro,inf=0,sup=n-1;
while(inf<=sup){
centro=(sup+inf)/2;
if (vector[centro]==dato)
return centro;
else if(dato < vector [centro] ){
sup=centro-1;
}
else {
inf=centro+1;
}
}
system("PAUSE");
return 0;
}
Ordenación por burbuja:
#include <stdio.h>
#include <stdlib.h>
int main()
{
float aux, numeros[10];
int i,j,n=10;
for (i=0;i<n;i++){
printf("Escriba
un número");
scanf("%f",&numeros[i]);
}
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(numeros[i]<numeros[j])
{
aux=numeros[i];
numeros[i]=numeros[j];
numeros[j]=aux;
}
}
}