Sie sind auf Seite 1von 2

/*Ordenamiento ascendente con metodo de insercion*/

#include <stdio.h>
#include <conio.h>
void insercion (int n);
void ver (int n);
int v[100]; // ----Declaramos un valor entero de tipo v
void main ()
{
int n,i,x; // Declaramos las variables
clrscr ();
do
{
gotoxy (1,3); clreol (); //Borra solo la coordenada 1,3
gotoxy (3,3); printf ("Cantidad de datos: "); scanf ("%d",&n); //ingres
amos los datos
}
while ((n<1) || (n>15)); // se cumple si n menor que 1 o n mayor que 15 Si el
elemento a comparar es mayor que el elemento a ordenar
entones desplazo el elemento a comparar una posicin a la derecha
para insertar el elemento a ordenar en la posicin correcta
/* Entrada de datos (a un espacio de distancia) */
x=0;
for (i=1; i<=n; ++i) // bucle que parte de una variable i con el valor 1,si i
es menor que n; aumenta i+1
{
gotoxy(10+x,5); scanf ("%d",&v[i]); // habra 10+x filas con 5 columnas
x+=2; // // Suma 2 a x luego se lo asigna a x mismo
if (v[i] < 10); // Elementos del vector
else if (v[i] < 100) x+=1; ///haremos uso de la condiciona if par
a sumar los numeros, si cumple la condicion
else if (v[i] < 1000) x+=2;
else x+=3;
} //Limites del arreglo
/* Llamadas de funciones para ordenamiento e impresion de datos */
insercion (n);
gotoxy (3,8); printf ("Ordenamiento ascendente"); //titulo en la fila 3
y hasta columna 8
gotoxy (3,9); printf ("-----------------------"); // reglon
ver (n);
getch ();
}
/* Metodo de insercion de datos */
void insercion (int n)
{
int i,j,aux;
for (i=1; i<=n; i++) // bucle que parte de una variable i con el valor 1,si i
es menor que n; aumenta i+1
{
aux=v[i]; j=i-1; //Contador j va ir decreciendo
while((j>=0) && (aux<v[j])) // utilizamos la variable aux para el camb
io , le asignamos lo que hay j
{
v[j+1]=v[j]; j--; // Como esta decreciendo va ir desde la posici
on j=i hasta que ese contador sea mayor j>0 y ese numero sea menor al anterior
}
v[j+1]=aux; // Va ir comparando el elemento anterior a el y si encuen
tro que es menor que el va ir desplazandolo ,hasta que el vector quede totalment
e ordenado
}
}
void ver (int n)
{
int x=0;
for (int i=1;i<=n;++i) // bucle que parte de una variable i con el valor 1,si
i es menor que n; aumenta i+1
{
gotoxy (10+x,11); printf ("%d",v[i]); // Utilizamos gotoxy para indicar
la posicion en que aparecera el texto, se avanzaran lienas en cada repeticion d
el for
x+=2;
if (v[i]<10); // haremos uso de la condiciona if para sumar los num
eros, si cumple la condicion
else if (v[i]<100) x+=1;
else if (v[i]<1000) x+=2;
else x+=3;
} // el vector tiene posiciones para ello utilizamos el for para movernos
entre ellosy almacenar los datos.
} // Luego almacenamos este dato en el vector, indicando en que posicion s
e alojara el mismo.

Das könnte Ihnen auch gefallen