Entre las más resaltantes existen:
Ordenamiento por Selección:
Este método consiste en buscar el dato más pequeño de una lista, intercambiándolo por el dato que se encuentra en la primera posición, luego el segundo más pequeño intercambiándolo por el que se encuentra en la segunda posición, así sucesivamente.
#include<iostream.h>
void intercambio (int &x, int &y){
int aux = x;
x=y;
y=aux;}
void ordintercambio (int a[], int n){
int i,j;
for(i=0; i<n; i++)
for(j=0; j<n; j++)
if(a[i] < a[j])
intercambio (a[i], a[j]);}
void imprimir (int a[], int n){
for(int i=0; i<n; i++)
cout<<a[i]<<" \n";}
void main(void){
int lista[20] = {80,15,13,4,6,9,75,86,99,32,95,1,87,51,2,3,7,99,10,20};
int i;
cout<<"Lista Original \n";
imprimir (lista,20);
ordintercambio (lista,20);
cout<<endl<<"Lista Ordenada \n";
imprimir (lista,20);
}
Dicho programa consiste en ordenar las 20 posiciones de menor a mayor (80,15,13,4,6,9,75,86,99,32,95,1,87,51,2,3,7,99,10,20)
Ordenamiento Burbuja:
Consiste en ir comparando cada entrada con la siguiente e intercambiar sus
posiciones, haciendo que el elemento más grande vaya hasta el último renglón y
el más pequeño al primer renglón, así sucesivamente.
Se le denomina Ordenamiento "Burbuja" debido a que los elementos más grandes van subiendo ("ultimo") como si fueran burbujas.
#include <iostream>using namespace::std;enum { Tamano = 10};// Cambiar la variable Tamaño para ordenar una// cantidad diferente de datos/*Prototipo de función Imprime */void Imprime( int A[]);/*prototipo de función Recibe */void Recibe ( int B[]);/*Prototipo de función Burbuja */void Burbuja( int C[]);int main(){ // Abre mainint Arreglo[Tamano] = {0, 0};// El Arreglo se ha inicializado a 0cout <<"\n Este programa recibe una serie de %d números enteros" << Tamano;cout <<" y los ordena por medio del algoritmo de ordenación burbuja. "<< endl;/*Se llena el arreglo mediante un llamado a la función Recibe*/Recibe(Arreglo);/*Se imprime el arreglo con las entradas en el orden original */cout <<"\nEsta es el orden en que se introdujeron los elementos: " <<endl;Imprime(Arreglo);/*Se ordena el arreglo mediante una llamada a la función Burbuja*/Burbuja(Arreglo);/*Se imprime el arreglo ordenado */cout <<"\nEste es el orden después de el ordenamiento burbuja. " <<endl;Imprime(Arreglo);return 0;} // Cierra main//FUNCION IMPRIMEvoid Imprime( int A[] ){ // Abre la función Imprimefor ( int j = 0; j < Tamano; j++ ){ // Abre forcout << "\t" << A[j];if ( 0 == j + 1 % 10)cout <<endl <<endl;} // Cierra forcout <<endl <<endl;} // Cierra la función Imprime//FUNCION RECIBEvoid Recibe( int B[] ){ // Abre función Recibefor ( int i = 0; i < Tamano; i++ ){ // Abre forcout << "\nIntroduzca el elemento " << i + 1 << " del arreglo: " << endl;cin >> B[i];}} // Cierra función Recibe//FUNCIÓN BURBUJAvoid Burbuja( int C[]){ // Abre función Burbujaint temporal;for ( int m = 0; m < Tamano - 1; m++ )for ( int n = 0; n <= Tamano - 1; n++ ){ // Abre forif ( C[n] > C[n + 1] ){ // Abre iftemporal = C[n];C[n] = C[n + 1];C[n + 1] = temporal;} // Cierra if} //Cierra for} // Cierra función Burbuja
Se le denomina Ordenamiento "Burbuja" debido a que los elementos mas grandes van subiendo ("se dirige a lo ultimo") como si fueran burbujas
No hay comentarios.:
Publicar un comentario