Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Selección Montículos
Selección Montículos
Ao de la Diversificacin Productiva y
del Fortalecimiento de la Educacin
Alumnos:
Curso:
Computacin.
Escuela:
Ing. De Sistemas.
Ciclo:
ll
2015
Mtodos de Ordenamiento
2.- Ejemplo.
Ordenamos la siguiente lista:
4
Mtodos de Ordenamiento
3.- Ventajas:
Fcil implementacin.
No requiere memoria adicional.
Realiza pocos intercambios.
Rendimiento constante: poca diferencia entre el peor y el mejor caso.
4.- Desventajas:
Lento, ya que realiza numerosas comparaciones.
Algoritmo C++:
#include
#include
#include
#include
#include
"stdafx.h"
<iostream>
<time.h>
<stdlib.h>
<conio.h>
Mtodos de Ordenamiento
system("pause");
return 0;
}
Mtodos de Ordenamiento
Mtodos de Ordenamiento
Algoritmo C++:
#include "stdafx.h"
#include <iostream>
#include <time.h>
using namespace std;
int main()
{
srand((unsigned)time(NULL));
int A[100],ma[100][100],j,item,temp,i,k,f,c,m,n;
cout<<"Informacion de la matriz "<<endl;
cout<<"Ingrese el numero de Filas: "; cin>>f;
cout<<"Ingrese el numero de Columnas: "; cin>>c;
for(i=1;i<=f*c;i++){
A[i]=1+rand()%20;}
for(i=1;i<=f*c;i++)
for(m=0;m<f;m++)
for(n=0;n<c;n++){
ma[m][n]=A[i];i++;}
Mtodos de Ordenamiento
cout<<"Matriz Original "<<endl;
for(m=0;m<f;m++){
for(n=0;n<c;n++){
cout<<ma[m][n]<<"\t";}cout<<endl;}
//ORDENANDO...
for(k=f*c;k>0;k--)
{
for(i=1;i<=k;i++)
{
item=A[i];
j=i/2;
while(j>0 && A[j]<item)
{
A[i]=A[j];
i=j;
j=j/2;
}
A[i]=item;
}
temp=A[1];
A[1]=A[k];
A[k]=temp;
}
cout<<"\nMATRIZ ORDENADA"<<endl;
for(i=1;i<=f*c;i++)
for(m=0;m<f;m++)
for(n=0;n<c;n++){
ma[m][n]=A[i];i++;}
for(m=0;m<f;m++){
for(n=0;n<c;n++){
cout<<ma[m][n]<<"\t";}cout<<endl;}
system("pause");
return 0;
}
Mtodos de Ordenamiento
Mtodos de Ordenamiento
Ejemplo:
//Metodo de Insercion
#include "stdafx.h"
#include<iostream>
#include<math.h>
using namespace std;
int mt[10][10],v[100];
int Ingresar_Dimension(){ int a;
do{
cout<<"Ingrese la dimension de la matriz: ";
cin>>a;
}
while(a<0 || a>10);
return a;
}
void Datos_Matriz(int a){
for(int i=0; i<a; i++){
for(int j=0; j<a; j++){
cout<<"mt["<<i+1<<"]["<<j+1<<"]=";cin>>mt[i][j];
}
}
}
void Impresion(int a){
for(int k=0; k<a; k++){
for(int j=0; j<a; j++){
printf("%4d",mt[k][j]);
}
cout<<endl;
}
}
void Inserccion (int a){
int aux;
int cont=0;
for(int i=0; i<a; i++){
for(int j=0; j<a; j++){
v[cont]=mt[i][j];
cont++;
}
Mtodos de Ordenamiento
int cont1=0;
for(int i=0; i<a; i++){
for(int j=0; j<a; j++){
mt[i][j]=v[cont1];
cont1++;
}
}
cout<<endl;
Impresion(a);
}
int _tmain(int argc, _TCHAR* argv[])
{
int n;
n=Ingresar_Dimension();
Datos_Matriz(n);
cout<<"Matriz original: "<<endl;
Impresion(n);
cout<<"Ordenamiento por Inserccion: "<<endl;
Inserccion(n);
system("PAUSE");
return 0;
}
Similitudes:
Estos nuevos algoritmos que hemos investigado se asemejan a los
tradicionales en 2 puntos muy sobresalientes, el primero es que
toman la posicin de un arreglo, haciendo que esta se compare con
las dems, el segundo punto sera que a travs de numerosas
comparaciones, los nmeros se intercambian por medio de una
variable auxiliar.
Mtodos de Ordenamiento