jueves, 10 de julio de 2014

EVAP7



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