ORDENAMIENTO
Es la operación
de arreglar los registros de una tabla en algún orden secuencial de
acuerdo a un criterio de ordenamiento. El
ordenamiento se efectúa con base en el valor de algún campo en un registro. El propósito principal de un ordenamiento
es el de facilitar las búsquedas de los
miembros del conjunto ordenado.
El ordenar un grupo
de datos significa mover los datos o sus referencias para que
queden en una secuencia tal que represente un
orden, el cual puede ser numérico, alfabético
o incluso alfanumérico, ascendente o descendente.
EJEMPLO:
#include<stdio.h>
#include<conio.h>
int v[100000],n;
void num_ordenados()
{
int valor_temporal;
for (int q=0;q<n-1;q++)/*declaramos dos ciclos para poder ir comparando 0-1,1-2,2-3,...hasta n.
{
for (int w=q+1;w<n;w++)
{
if (v[w]<v[q])
{
valor_temporal=v[w];/*se asigna el valor encontrado*/
v[w]=v[q];/*ahora el valor de v[q] toma el de v[w] para poder compararlo de nuevo con el siguiente numero*/
v[q]=valor_temporal;
}
}
}
}
void orden()/*para poder imprimirlos en orden*/
{
for (int t=0;t<n;t++)
{
printf("\t%d\n",v[t]);
}
}
main()
{
printf("cant. de numeros: ");
scanf("%d",&n);
for (int i=0; i<=n-1;i++)
{
printf("\ningrse numero %d: ",i+1);
scanf("%d",&v[i]);
}
printf("\norden en el que fueron ingresado:\n\n");
orden();/*llamamos nuetra operacion para imprimirlo con el orden en el que fueron ingresados*/
num_ordenados();/*luego ya con el metoo de seleccion*/
printf("\n");
printf("\nmetodo de seleccion:\n\n");
orden();
}
MÉTODO DE BURBUJA:
El ordenamiento por
burbuja es bastante sencillo, consiste en evaluar pares de
elementos contiguos del arreglo y si el primero es mayor que el siguiente los
intercambia (los más chicos quedan abajo). Todo esto sucede dentro de dos
ciclos for que recorren el
arreglo. El ciclo más interno realiza las comparaciones, y se asegura ya en la
primera pasada completa que el elemento más grande del arreglo suba a la
posición más alta (esto más adelante nos permitirá desarrollar un algoritmo
mejorado del método burbuja).
EJEMPLO:
#include<stdio.h>
#include<conio.h>
main()
{
int temp;
int
arreglo[10]={8,4,2,9,6,3,5,7,1,10};
for (int
b=0;b<11;b++)/*esto sirve para que el arreglo pueda compararce las veces
nesesarias y asi poder imprimir los numeros ordenados ejemplo de esto aqui
{
for (int i=0;i<8;i++)
{
if (arreglo[i+1]<arreglo[i])
{
temp=arreglo[i];
arreglo[i]=arreglo[i+1];
arreglo[i+1]=temp;
}
}
}
printf("\nordenamiento por el
emtodo de burbuja (bubblesort)");
for (int x=0;x<9;x++)
{
printf("\n%d",arreglo[x]);
}
}
MÉTODO DE ORDENACIÓN POR INSERCIÓN:
#include<conio.h>
#include<stdio.h>
int
num[100000],n;
void
insercion()
{
int tem;
for (int q=1;q<n;q++)
{
tem=num[q];
for (int j=q;j>0 &&
tem<num[j-1];j--)
{
num[j]=num[j-1];
num[j-1]=tem;
}
}
}
void
imprimir()
{
for (int h=0;h<n;h++)
{
printf("\t%d",num[h]);
}
}
main()
{
printf("cant. de numeros: ");
scanf("%d",&n);
for (int y=0;y<n;y++)
{
printf("valor
%d: ",y+1);
scanf("%d",&num[y]);
}
printf("\norden
ingresados:\n\n");
imprimir();
insercion();
printf("\n\nmetodo
de insercion:\n\n");
imprimir();
getch();
}
No hay comentarios:
Publicar un comentario