Está en la página 1de 7

ALGORITMOS DE ORDENAMIENTO

Tabla de variables
Nombre Tipo Uso
lista Cualquiera Lista a ordenar
TAM Constante entera Tamaño de la lista
i Entero Contador
j Entero Contador
temp El mismo que los elementos de la lista Para realizar los intercambios

1. for (i=1; i<TAM; i++)


2. for j=0 ; j<TAM - 1; j++)
3. if (lista[j] > lista[j+1])
4. temp = lista[j];
5. lista[j] = lista[j+1];
6. lista[j+1] = temp;

PROCEDURE Ordenar(A:LNaturales);
VAR i,j:longint;
aux:qword;
BEGIN
FOR i:=low(A)+1 TO High(A) DO
BEGIN
aux:=A[i]; //aux almacena el elemento a comparar con los anteriores
j:=i-1;
WHILE (j>=0) AND (aux<A[j]) DO
//Mientras no sea el fin de la lista y aux sea menor con uno de los
//elementos anteriores, ir desplazando
BEGIN
A[j+1]:=A[j];
j-=1;
END;
//Colocar aux en la posición del último elemento desplazado.
A[j+1]:=aux;
END;
END;

ALGORITMOS DE SELECCIÓN

Tabla de variables
Nombre Tipo Uso
lista Cualquiera Lista a ordenar
TAM Constante entera Tamaño de la lista
i Entero Contador
Posición del menor elemento de la
pos_men Entero
lista
El mismo que los elementos de la
temp Para realizar los intercambios
lista
1. for (i=0; i<TAM - 1; i++)
2. pos_men = Menor(lista, TAM, i);
3. temp = lista[i];
4. lista[i] = lista [pos_men];
5. lista [pos_men] = temp;

ALGORITMOS DE INSERCCIÓN

Tabla de variables
Nombre Tipo Uso
lista Cualquiera Lista a ordenar
TAM Constante Entera Tamaño de la lista
i Entero Contador
j Entero Contador
temp El mismo que los elementos de la lista Para realizar los intercambios

1. for (i=1; i<TAM; i++)


2. temp = lista[i];
3. j = i - 1;
4. while ( (lista[j] > temp) && (j >= 0) )
5. lista[j+1] = lista[j];
6. j--;
7. lista[j+1] = temp;

METODO DE INTERCAMBIO

int v[]={3, 34, 1, 53, 15, 6};


int j,i, aux;

// Ordenación
for(i=0; i<5; i++){
// Comparaciones
for(j=0; j<5-i; j++){
// Intercambiar los elementos
if(v[j] > v[j+1]){
aux=v[j];
v[j]=v[j+1];
v[j+1]=aux;
}
}
}

MÉTODO DE BURBUJA:

código:
#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
{
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();
}

#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();
}

BUSQUEDA BINARIA
#include <stdio.h> 
#include <stdlib.h> 
void cargar (int vec[], int tam) 

int i; 
printf("Ingresar 10 valoresn" ; 
for(i=0;i<tam;i++) 

printf("Ingresar valor: " ; 
scanf("%d",&vec); 


void ordenacion (int vec[], int tam) 

int i,j,aux; 
for(i=0;i<tam-1;i++) 

for(j=0;j<tam-i;j++) 

if(vec[j]>vec[j+1]) 

aux=vec[j]; 
vec[j]=vec[j+1]; 
vec[j+1]=aux; 




void mostrar(int vec[], int tam) 

int i; 
printf("n"
for(i=0;i<tam;i++) 

printf("%d, ",vec); 

printf("nn"

int busqueda (int vec[],int buscado,int tam) 



int inicio,medio,fin,ban=0; 
inicio=0; 
fin=tam-1; 
while(inicio<=fin && ban==0) 

medio=(inicio+fin)/2; 
if(buscado==vec[medio]) 

ban=1; 

else 

if(buscado<vec[medio]) 

fin=medio-1; 

else 

inicio=medio+1; 



return medio+1; 

int main(int argc, char *argv[]) 
{ int pos,num,vector[10]; 

cargar(vector,10); 
ordenacion(vector,10); 
printf("nEste es el vector ordenado
mostrar(vector,10); 
printf("Ingresa el elemento a buscar: " ; 
scanf("%d",&num); 
pos=busqueda(vector,num,10); 
printf("El elemento se encuentra en la posicion %d nn",pos); 
system("PAUSE
return 0; 
}

int busquedaBinaria(int vector[], int n, int dato) {


int centro,inf=0,sup=n-1;
while(inf<=sup){
centro=((sup-inf)/2)+inf;
if(vector[centro]==dato) return centro;
else if(dato < vector[centro]) sup=centro-1;
else inf=centro+1;
}
return -1;
}

También podría gustarte