SlideShare una empresa de Scribd logo
1 de 10
oredenamento mergesort

cpp

// En el código usamos la clase vector (#include <vector.h>) para crear los
vectores,
// obviamente funciona igual de bien si se utilizan los arrays tipo C: TIPO V[]
template <class T, class U>
void fusiona(vector<T>& v, U ini, U med, U fin) {
    vector<T> aux(fin - ini + 1);
    int i = ini; // Índice de la parte izquierda
    int j = med + 1; // Índice de la parte derecha
    int k = 0; // Índice del vector aux


      /* Mientras ninguno de los indices llegue a su fin vamos realizando
         comparaciones. El elemento más pequeño se copia al vector aux */
      while (i <= med && j <= fin) {
          if (v[i] < v[j]) {
               aux[k] = v[i];
               i++;
          }
          else {
               aux[k] = v[j];
               j++;
          }
          k++;
      }

      /* Uno de los dos sub-vectores ya ha sido copiado del todo, simplemente
         debemos copiar todo el sub-vector que nos falte */
      while (i <= med) {
          aux[k] = v[i];
          i++;
          k++;
      }

      while (j <= fin) {
          aux[k] = v[j];
          j++;
          k++;
      }

      /* Copiamos los elementos ordenados de aux al vector original v */
      for (int n = 0; n < aux.size(); ++n) v[ini + n] = aux[n];
}

template <class T, class U>
void merge_sort(vector<T>& v, U ini, U fin) {
    /* Si ini = fin el sub-vector es de un solo elemento y, por lo tanto
       ya está ordenado por definición */
    if (ini < fin) {
/*Considerar que el valor de med siempre es redondeado hacia abajo.*/
        int med = (ini + fin)/2;
        merge_sort(v, ini, med);
        merge_sort(v, med + 1, fin);
        fusiona(v, ini, med, fin);
    }
}

c

void mezclar(int arreglo1[], int n1, int arreglo2[], int n2, int arreglo3[])
{
int x1=0, x2=0, x3=0;

    while (x1<n1 && x2<n2) {
        if (arreglo1[x1]<arreglo2[x2]) {
            arreglo3[x3] = arreglo1[x1];
            x1++;
        } else {
            arreglo3[x3] = arreglo2[x2];
            x2++;
        }
        x3++;
    }
    while (x1<n1) {
        arreglo3[x3] = arreglo1[x1];
        x1++;
        x3++;
    }
    while (x2<n2) {
        arreglo3[x3] = arreglo2[x2];
        x2++;
        x3++;
    }
}

void mezcla(int vector[], int n)
{
    int *vector1, *vector2, n1, n2,x,y;
    if (n>1)
    {
        if (n%2 == 0)
             n1=n2=(int) n / 2;
        else
        {
             n1=(int) n / 2;
             n2=n1+1;
        }
        vector1=(int *) malloc(sizeof(int)*n1);
        vector2=(int *) malloc(sizeof(int)*n2);
        for(x=0;x<n1;x++)
             vector1[x]=vector[x];
        for(y=0;y<n2;x++,y++)
             vector2[y]=vector[x];
        mezcla(vector1, n1);
        mezcla(vector2, n2);
        mezclar(vector1, n1, vector2, n2, vector);
        free(vector1);
        free(vector2);
    }
}

int main(){
    int i, vector[] = {2,3,5,7,2,6,1,5,8,3,2};

    mezcla(vector,12);

    for(i=0;i<12;i++)
        printf("%i,n", vector[i]);

    return 0;
}

java

public class MergeSort{
private int A[];
 public int[] OrdenaMerge(int[] L) {
    int n = L.length;

    if (n >   1){
        int   m = (int) (Math.ceil(n/2.0));
        int   [] L1 = new int[m];
        int   [] L2 = new int[n-m];

        for (int i = 0; i < m; i++){
            L1[i] = L[i];
        }
        for (int i = m; i < n; i++){
            L2[i-m] = L[i];
        }
        L = merge(OrdenaMerge(L1), OrdenaMerge(L2));
    }
    return L;
}

public int[] eliminar(int [] l){
    int [] L = new int[l.length-1];
    for(int i = 1; i < l.length; i++){
        L[i-1] = l[i];
    }
    return L;
}

public int[] merge(int[] L1, int[] L2) {
     int[] L = new int[L1.length+L2.length];
     int i = 0;
     while ((L1.length != 0) && (L2.length != 0)) {
         if (L1[0] < L2[0]){
             L[i++] = L1[0];
             L1 = eliminar(L1);
             if (L1.length == 0){
                  while (L2.length != 0) {
                      L[i++] = L2[0];
                      L2 = eliminar(L2);
                  }
             }
         }
         else{
             L[i++] = L2[0];
             L2 = eliminar(L2);
             if (L2.length == 0) {
                while (L1.length != 0) {
                      L[i++] = L1[0];
                      L1 = eliminar(L1);
                }
             }
         }
     }
     return L;
}

public void generarNumeros(){
    Random ran = new Random();
    int x;
    for(int i = 0; i < A.length; i++){
        x = (int)(ran.nextDouble()*10000);
        A[i] = x;
    }
}
public void imprimir(){
        for(int i = 0; i < A.length; i++){
            System.out.println(A[i]);
        }
    }

    public int[] getA(){
        return A;
    }

    public void setA(int []A){
        this.A = A;
    }
}

quicksort

int colocar(int *v, int b, int t)
{
    int i;
    int pivote, valor_pivote;
    int temp;

    pivote = b;
    valor_pivote = v[pivote];
    for (i=b+1; i<=t; i++){
        if (v[i] < valor_pivote){
                pivote++;
                temp=v[i];
                v[i]=v[pivote];
                v[pivote]=temp;

        }
    }
    temp=v[b];
    v[b]=v[pivote];
    v[pivote]=temp;
    return pivote;
}




void Quicksort(int* v, int b, int t)
{
     int pivote;
     if(b < t){
        pivote=colocar(v, b, t);
        Quicksort(v, b, pivote-1);
        Quicksort(v, pivote+1, t);
     }
}

#include   <stdio.h>
#include   <iostream.h>
#include   <conio.h>
#include   <stdlib.h>
#include    <string.h>

using namespace std;

typedef struct nodo
{
   int cedula;
   struct nodo*siguiente;
}tiponodo;

typedef tiponodo *pnodo;
typedef tiponodo *cola;

cola cola_n=NULL;
cola cola_vip=NULL;
int solic;

void insertar (cola *cola_n)
{
   cola aux, creado;

    creado=(pnodo)malloc(sizeof(tiponodo));

   cout<<"
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"<<endl;
   cout<<"   ||||||||||||||||||||METROPOLI banco
universal||||||||||||||||||||"<<endl;
   cout<<"   |||||||||||||||||||||||Le da la
bienvenida|||||||||||||||||||||||"<<endl;
   cout<<"
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"<<endl;
   cout<<"   Estimado cliente: Introduzca su numero de cedula"<<endl;
   cin>>     creado->cedula;
   cout<<"   Pronto sera atendido"<<endl;


    if ((*cola_n)==NULL)
    {
       creado->siguiente=*cola_n;
       *cola_n=creado;
    }
    else
    {
       aux=*cola_n;

        while(aux!=NULL)
        {
           if(aux->siguiente==NULL)
           {
              creado->siguiente=aux->siguiente;
              aux->siguiente=creado;
              aux=aux->siguiente;
           }
           aux=aux->siguiente;
        }
    }
}

void mostrar_cola (cola cola_n)
{
   cola aux;
   aux=cola_n;
   if(aux==NULL)
   {
      cout<<"No hay clientes en cola"<<endl;
   }
   else
   {
      while(aux!=NULL)
{
         cout<<"Cedula: "<<aux->cedula<<endl;
         cout<<""<<endl;
         aux=aux->siguiente;
         cout<<"* Clientes ordenados por orden de
llegada((((((SIMCOLAS))))))"<<endl;
       }
   }
}
//modificado hasta acá... falta de orden por parte del creador
void insertar_vip (cola *cola_vip){
     cola aux_2, creado_vip;
     creado_vip=(pnodo)malloc(sizeof(tiponodo));
     cout<<"
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"<<endl;//62
     cout<<"   ||||||||||||||||||||METROPOLI banco
universal||||||||||||||||||||"<<endl;
     cout<<"   |||||||||||||||||||||||Le da la
bienvenida|||||||||||||||||||||||"<<endl;
     cout<<"
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"<<endl;
     cout<<"   Estimado cliente: Introduzca su numero de cedula"<<endl;
     cin>>     creado_vip->cedula;
     cout<<"   Pronto sera atendido"<<endl;
     if ((*cola_vip)==NULL){
         creado_vip->siguiente=*cola_vip;
         *cola_vip=creado_vip;
     }else{
         aux_2=*cola_vip;
         while(aux_2!=NULL){
             if(aux_2->siguiente==NULL){
                creado_vip->siguiente=aux_2->siguiente;
                aux_2->siguiente=creado_vip;
                aux_2=aux_2->siguiente;
             }
             aux_2=aux_2->siguiente;
         }
     }

}

void mostrar_cola_vip (cola cola_vip){
    cola aux_2;
    aux_2=cola_vip;
    if(aux_2==NULL){
       cout<<"No hay clientes V.I.P en cola"<<endl;
    }else{
       while(aux_2!=NULL){
           cout<<"Cedula: "<<aux_2->cedula<<endl;
           cout<<""<<endl;
           cout<<"* Clientes ordenados por orden de
llegada((((((SIMCOLAS))))))"<<endl;
           aux_2=aux_2->siguiente;
       }
    }
}

void pop (cola *cola_n){

     if((*cola_n)==NULL){
                     cout<<"No hay clientes en cola ((((((SIMCOLAS))))))"<<endl;
                     cout<<""<<endl;
                     }
if((*cola_n)!=NULL){
                                          cout<<"Cliente: "<<(*cola_n)->cedula;
                                          cout<<" es su turno"<<endl;
                                          *cola_n=(*cola_n)->siguiente;
                                          free(cola_n);
                                          system("PAUSE");
                                          cout<<""<<endl;
                                          }

                             if((*cola_n)==NULL){
                                                 cout<<"No hay clientes en cola
((((((SIMCOLAS))))))"<<endl;
                                                 cout<<""<<endl;
                                                 }else{

                                   cout<<"Cliente: "<<(*cola_n)->cedula;
                                   cout<<" es su turno"<<endl;
                                   *cola_n=(*cola_n)->siguiente;
                                   free(cola_n);
                                   system("PAUSE");
                                   cout<<""<<endl;
                                   }
                                   }

                                   void pop_vip(cola *cola_vip){

                                        if(cola_vip!=NULL){
                                                           cout<<"Cliente:
"<<(*cola_vip)->cedula;
                                                           cout<<" es su
turno"<<endl;
                                                           *cola_vip=(*cola_vip)-
>siguiente;
                                                           free(cola_vip);
                                                           }else{
                                                                  cout<<"No hay
usuarios V.I.P en cola ((((((SIMCOLAS))))))"<<endl;
                                                                   }
                                                                   }



void menu();

void   Insertar();
void   insertar_vip();
void   mostrar_cola();
void   mostrar_colavip();
void   solicitar_numero();
void   salir();


struct perly{
char uxer[];
}data;

struct perly *p = &data;


int main(int argc, char *argv[])
{

    system("color 0a");
cout<<"                                 *                     *                   *
"<<endl;
    cout<<"                 *                                            *
"<<endl;
    cout<<"      *                   |                *              *       *            *
"<<endl;
    cout<<"             *           -+-                      *
"<<endl;
    cout<<"          __              |         *                *          *        *
"<<endl;
    cout<<"   ___| |        *       _|_                   *     ____   ____
"<<endl;
    cout<<"   [_]|°°|__            _| |_            *     |    |....| |....|    *       *
"<<endl;
    cout<<"        |      |     _|[] []|_         ___     |    |....| | ___|__
"<<endl;
    cout<<"   [_]| °° |__|_ ______| |                 | |_| |....| || -- - |      *         *
"<<endl;
    cout<<"        |________ |__            | |# #| |_| |....| || - -- | _____
"<<endl;
    cout<<"   [_]| _____ |           |__[]| |         | |_| |....|__|| -- - | |* * *|
"<<endl;
    cout<<"        | [___] |             |__ |# #| |_| |....|__|| -- -_|_|* * *|
"<<endl;
    cout<<"   [_]|            | °°            | |     |__| |__|....| || ___|* *|* * *|
"<<endl;
    cout<<"        | _____ |                  |__ #|_______|....| | |* *|* *|* * *|
"<<endl;
    cout<<"   [_]| [___] |              °°        |__|_______|__ | | |* *|* *|* * *|
"<<endl;
    cout<<"        |          |                __|_____________|__      |* *|* *|* * *|
"<<endl;
    cout<<"   [_]| _____ | °°               _|___________________|_ |* *|* *|* * *|
"<<endl;
    cout<<"        | [___] |               |_______________________| ______________
"<<endl;
    cout<<"     __|_______|_________|_______________________| _________________
"<<endl;
    cout<<"   |
_______________________________________________________________|"<<endl;
    cout<<"
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"<<endl;//62
    cout<<"   ||||||||||||||||||||METROPOLI banco
universal||||||||||||||||||||"<<endl;
    cout<<"   ||||||||||||Sistema Integral para el Manejo de
COLAS|||||||||||||"<<endl;
    cout<<"   |||||||||||||||||||||||||||||
SIMCOLAS||||||||||||||||||||||||||||"<<endl;
    cout<<"
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"<<endl;
    cout<<"   |||||||||Creado por: Javier Rodriguez Caracas-
Venezuela||||||||||"<<endl;
    cout<<"
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"<<endl;
    cout<<"   Login: ";
    char usuario[6] = "jahvi";
    cin.getline(p->uxer,6);

    if (strcmp(p->uxer,usuario) == 0) {
                                cout<<"Bienvenid@ al sistema "<<endl; menu();
                                cout<<""<<endl;
                                }else{
                                       cout<<"Acceso Denegado. Consulte al
Admisnistrador "<<endl;
}


   system("PAUSE");
   return EXIT_SUCCESS;
}
void menu() {
     short a;
     do {

        cout<<""<<endl;
        cout<< "0 - Agregar Cliente"<<endl;
        cout<< "1 - Agregar Cliente V.I.P"<<endl;
        cout<< "2 - Solicitar Numero"<<endl;
        cout<< "3 - Mostrar Cola"<<endl;
        cout<< "4 - Mostrar Cola V.I.P"<<endl;
        cout<< "5 - Salir del Sistema"<<endl;
        cout<<""<<endl;

        fflush(stdout);

        cout<<"Opcion #:";
        cin>>a;
        cout<<""<<endl;

        if (a == 5)
        exit(1);

                   switch(a){
                    case 0 :
                           Insertar();
                           break;

                         case 1 :
                              insertar_vip();
                              break;

                              case 2 :
                                   solicitar_numero();
                                   break;

                                   case 3 :
                                        mostrar_cola();
                                        break;

                                          case 4 :
                                               mostrar_colavip();

                                               break;

                                               case 5 :
                                                    salir();
                                                    break;

                                                    default :
                                                            puts("Usted no ha
seleccionado nada, porfavor seleccione algon");
                                                            break;
                                                            };
                                                            } while (1);
                                                            }


void Insertar(){
insertar(&cola_n);
    }
         void insertar_vip(){
              insertar(&cola_vip);
              }

         void mostrar_cola(){
              mostrar_cola(cola_n);

                              }

               void mostrar_colavip(){
                    mostrar_cola_vip(cola_vip);
                    }

                     void solicitar_numero(){
                          pop(&cola_n);

                          if(cola_vip!=NULL){
                                             pop_vip(&cola_vip);
                                             }else{
                                                    cout<<"No hay cliente V.I.P en
cola ((((((SIMCOLAS))))))"<<endl;
                                                   }

                          }

                          void salir(){
                               }



ordenamiento shell

public static void main(String [] args) {
    //arreglo
    int Entrada[] = {
        321, 123, 213, 234, 1, 4, 5, 6, 21, 15
    };
    //llamada
    shellSort(Entrada);
    for (int i = 0; i < Entrada.length; i++) {
        System.out.print(Entrada[i]+" ");
    }
 }

public static void shellSort( int vec[]) {
   // saltos
   for( int p = vec.length / 2; p > 0; p = p == 2 ? 1 : (int) ( p / 2.2 ) ) {
       for( int i = p; i < vec.length; i++) {
           int tmp = vec[i];
           int j;
           for(j = i; j >= p && tmp < vec[j - p]; j -= p ) {
               vec[j] = vec[j - p];
           }
           vec[j] = tmp;
       }
   }
}

Más contenido relacionado

La actualidad más candente

1.2. kotlin (1)
1.2. kotlin (1)1.2. kotlin (1)
1.2. kotlin (1)xavazque2
 
Integral indefinida
Integral indefinidaIntegral indefinida
Integral indefinidaruyepesro
 
Ejercicios en netbeans con condiciones
Ejercicios en netbeans con condicionesEjercicios en netbeans con condiciones
Ejercicios en netbeans con condicionesJoshe Varillas
 
Practica 02-taller-de-programacion-121226180145-phpapp02
Practica 02-taller-de-programacion-121226180145-phpapp02Practica 02-taller-de-programacion-121226180145-phpapp02
Practica 02-taller-de-programacion-121226180145-phpapp02Flor Santana Mota
 
Kruskal
KruskalKruskal
KruskalJorge
 
Arreglos 1D, 2D, 3D.
Arreglos 1D, 2D, 3D.Arreglos 1D, 2D, 3D.
Arreglos 1D, 2D, 3D.Susan Gil
 
Universidad tecnológica del estado de zacatecas
Universidad tecnológica del estado de zacatecasUniversidad tecnológica del estado de zacatecas
Universidad tecnológica del estado de zacatecasLuis Angel Davila Elias
 
Ejercicios resuletos de programacion
Ejercicios resuletos de programacionEjercicios resuletos de programacion
Ejercicios resuletos de programacionWilliam Lozano
 
Java AWT Tres en Raya
Java AWT Tres en RayaJava AWT Tres en Raya
Java AWT Tres en Rayajubacalo
 
Modulo 9 Costos de Producción Parte 1
Modulo 9 Costos de Producción Parte 1Modulo 9 Costos de Producción Parte 1
Modulo 9 Costos de Producción Parte 1Horacio Santander
 

La actualidad más candente (18)

1.2. kotlin (1)
1.2. kotlin (1)1.2. kotlin (1)
1.2. kotlin (1)
 
Cesar lenguaje c_
Cesar lenguaje c_Cesar lenguaje c_
Cesar lenguaje c_
 
Integral indefinida
Integral indefinidaIntegral indefinida
Integral indefinida
 
Ejercicios en netbeans con condiciones
Ejercicios en netbeans con condicionesEjercicios en netbeans con condiciones
Ejercicios en netbeans con condiciones
 
Hechos en clase
Hechos en claseHechos en clase
Hechos en clase
 
Practica 02-taller-de-programacion-121226180145-phpapp02
Practica 02-taller-de-programacion-121226180145-phpapp02Practica 02-taller-de-programacion-121226180145-phpapp02
Practica 02-taller-de-programacion-121226180145-phpapp02
 
Kruskal
KruskalKruskal
Kruskal
 
Arreglos 1D, 2D, 3D.
Arreglos 1D, 2D, 3D.Arreglos 1D, 2D, 3D.
Arreglos 1D, 2D, 3D.
 
Universidad tecnológica del estado de zacatecas
Universidad tecnológica del estado de zacatecasUniversidad tecnológica del estado de zacatecas
Universidad tecnológica del estado de zacatecas
 
Resumen java
Resumen javaResumen java
Resumen java
 
Ejercicios resuletos de programacion
Ejercicios resuletos de programacionEjercicios resuletos de programacion
Ejercicios resuletos de programacion
 
Eliita
EliitaEliita
Eliita
 
Java AWT Tres en Raya
Java AWT Tres en RayaJava AWT Tres en Raya
Java AWT Tres en Raya
 
Modulo 9 Costos de Producción Parte 1
Modulo 9 Costos de Producción Parte 1Modulo 9 Costos de Producción Parte 1
Modulo 9 Costos de Producción Parte 1
 
Practica 1 Introduccion Al R
Practica 1 Introduccion Al RPractica 1 Introduccion Al R
Practica 1 Introduccion Al R
 
Java
JavaJava
Java
 
Taller 1 de estructuras
Taller 1 de estructurasTaller 1 de estructuras
Taller 1 de estructuras
 
Acmar trucos de visual basic(2)
Acmar   trucos de visual basic(2)Acmar   trucos de visual basic(2)
Acmar trucos de visual basic(2)
 

Similar a Metodos de ordenamiento

Problemas resueltos de c++
Problemas  resueltos de c++Problemas  resueltos de c++
Problemas resueltos de c++johnny herrera
 
Codificaciones c++
Codificaciones c++Codificaciones c++
Codificaciones c++mario_10
 
Codificaciones c++
Codificaciones c++Codificaciones c++
Codificaciones c++mario_10
 
Codificaciones c++2011
Codificaciones c++2011Codificaciones c++2011
Codificaciones c++2011mario_10
 
Codificaciones c++2011
Codificaciones c++2011Codificaciones c++2011
Codificaciones c++2011mario_10
 
Codificaciones c++2011
Codificaciones c++2011Codificaciones c++2011
Codificaciones c++2011hjdfjhdf
 
Informe tecnico u 3-victor uex
Informe tecnico u 3-victor uexInforme tecnico u 3-victor uex
Informe tecnico u 3-victor uexvictoruex
 
Correccion de la prueba mfsi
Correccion de la prueba mfsiCorreccion de la prueba mfsi
Correccion de la prueba mfsiPamela Zambrano
 
Ejercicios resueltos practica 2 (nueva 2014) informática ii
Ejercicios resueltos practica 2 (nueva 2014) informática iiEjercicios resueltos practica 2 (nueva 2014) informática ii
Ejercicios resueltos practica 2 (nueva 2014) informática iiAlvin Jacobs
 
Codificaciones c++
Codificaciones c++Codificaciones c++
Codificaciones c++mario0123
 

Similar a Metodos de ordenamiento (20)

Problemas resueltos de c++
Problemas  resueltos de c++Problemas  resueltos de c++
Problemas resueltos de c++
 
Informe 2 da unidad lp
Informe 2 da unidad lpInforme 2 da unidad lp
Informe 2 da unidad lp
 
Algoritmos en c++
Algoritmos en c++Algoritmos en c++
Algoritmos en c++
 
Codificaciones c++
Codificaciones c++Codificaciones c++
Codificaciones c++
 
Codificaciones c++
Codificaciones c++Codificaciones c++
Codificaciones c++
 
Codificaciones c++2011
Codificaciones c++2011Codificaciones c++2011
Codificaciones c++2011
 
Codificaciones c++2011
Codificaciones c++2011Codificaciones c++2011
Codificaciones c++2011
 
Codificaciones c++2011
Codificaciones c++2011Codificaciones c++2011
Codificaciones c++2011
 
G++
G++G++
G++
 
Interpolaion c++
Interpolaion c++Interpolaion c++
Interpolaion c++
 
Matrices c++
Matrices c++Matrices c++
Matrices c++
 
Informe tecnico u 3-victor uex
Informe tecnico u 3-victor uexInforme tecnico u 3-victor uex
Informe tecnico u 3-victor uex
 
Codigo Fuente
Codigo FuenteCodigo Fuente
Codigo Fuente
 
Practica
PracticaPractica
Practica
 
3 unidad
3 unidad 3 unidad
3 unidad
 
Cedula
CedulaCedula
Cedula
 
Correccion de la prueba mfsi
Correccion de la prueba mfsiCorreccion de la prueba mfsi
Correccion de la prueba mfsi
 
Ejercicios resueltos practica 2 (nueva 2014) informática ii
Ejercicios resueltos practica 2 (nueva 2014) informática iiEjercicios resueltos practica 2 (nueva 2014) informática ii
Ejercicios resueltos practica 2 (nueva 2014) informática ii
 
Codificaciones c++
Codificaciones c++Codificaciones c++
Codificaciones c++
 
Codificaciones c++
Codificaciones c++Codificaciones c++
Codificaciones c++
 

Último

Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 

Último (11)

Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 

Metodos de ordenamiento

  • 1. oredenamento mergesort cpp // En el código usamos la clase vector (#include <vector.h>) para crear los vectores, // obviamente funciona igual de bien si se utilizan los arrays tipo C: TIPO V[] template <class T, class U> void fusiona(vector<T>& v, U ini, U med, U fin) { vector<T> aux(fin - ini + 1); int i = ini; // Índice de la parte izquierda int j = med + 1; // Índice de la parte derecha int k = 0; // Índice del vector aux /* Mientras ninguno de los indices llegue a su fin vamos realizando comparaciones. El elemento más pequeño se copia al vector aux */ while (i <= med && j <= fin) { if (v[i] < v[j]) { aux[k] = v[i]; i++; } else { aux[k] = v[j]; j++; } k++; } /* Uno de los dos sub-vectores ya ha sido copiado del todo, simplemente debemos copiar todo el sub-vector que nos falte */ while (i <= med) { aux[k] = v[i]; i++; k++; } while (j <= fin) { aux[k] = v[j]; j++; k++; } /* Copiamos los elementos ordenados de aux al vector original v */ for (int n = 0; n < aux.size(); ++n) v[ini + n] = aux[n]; } template <class T, class U> void merge_sort(vector<T>& v, U ini, U fin) { /* Si ini = fin el sub-vector es de un solo elemento y, por lo tanto ya está ordenado por definición */ if (ini < fin) { /*Considerar que el valor de med siempre es redondeado hacia abajo.*/ int med = (ini + fin)/2; merge_sort(v, ini, med); merge_sort(v, med + 1, fin); fusiona(v, ini, med, fin); } } c void mezclar(int arreglo1[], int n1, int arreglo2[], int n2, int arreglo3[]) {
  • 2. int x1=0, x2=0, x3=0; while (x1<n1 && x2<n2) { if (arreglo1[x1]<arreglo2[x2]) { arreglo3[x3] = arreglo1[x1]; x1++; } else { arreglo3[x3] = arreglo2[x2]; x2++; } x3++; } while (x1<n1) { arreglo3[x3] = arreglo1[x1]; x1++; x3++; } while (x2<n2) { arreglo3[x3] = arreglo2[x2]; x2++; x3++; } } void mezcla(int vector[], int n) { int *vector1, *vector2, n1, n2,x,y; if (n>1) { if (n%2 == 0) n1=n2=(int) n / 2; else { n1=(int) n / 2; n2=n1+1; } vector1=(int *) malloc(sizeof(int)*n1); vector2=(int *) malloc(sizeof(int)*n2); for(x=0;x<n1;x++) vector1[x]=vector[x]; for(y=0;y<n2;x++,y++) vector2[y]=vector[x]; mezcla(vector1, n1); mezcla(vector2, n2); mezclar(vector1, n1, vector2, n2, vector); free(vector1); free(vector2); } } int main(){ int i, vector[] = {2,3,5,7,2,6,1,5,8,3,2}; mezcla(vector,12); for(i=0;i<12;i++) printf("%i,n", vector[i]); return 0; } java public class MergeSort{
  • 3. private int A[]; public int[] OrdenaMerge(int[] L) { int n = L.length; if (n > 1){ int m = (int) (Math.ceil(n/2.0)); int [] L1 = new int[m]; int [] L2 = new int[n-m]; for (int i = 0; i < m; i++){ L1[i] = L[i]; } for (int i = m; i < n; i++){ L2[i-m] = L[i]; } L = merge(OrdenaMerge(L1), OrdenaMerge(L2)); } return L; } public int[] eliminar(int [] l){ int [] L = new int[l.length-1]; for(int i = 1; i < l.length; i++){ L[i-1] = l[i]; } return L; } public int[] merge(int[] L1, int[] L2) { int[] L = new int[L1.length+L2.length]; int i = 0; while ((L1.length != 0) && (L2.length != 0)) { if (L1[0] < L2[0]){ L[i++] = L1[0]; L1 = eliminar(L1); if (L1.length == 0){ while (L2.length != 0) { L[i++] = L2[0]; L2 = eliminar(L2); } } } else{ L[i++] = L2[0]; L2 = eliminar(L2); if (L2.length == 0) { while (L1.length != 0) { L[i++] = L1[0]; L1 = eliminar(L1); } } } } return L; } public void generarNumeros(){ Random ran = new Random(); int x; for(int i = 0; i < A.length; i++){ x = (int)(ran.nextDouble()*10000); A[i] = x; } }
  • 4. public void imprimir(){ for(int i = 0; i < A.length; i++){ System.out.println(A[i]); } } public int[] getA(){ return A; } public void setA(int []A){ this.A = A; } } quicksort int colocar(int *v, int b, int t) { int i; int pivote, valor_pivote; int temp; pivote = b; valor_pivote = v[pivote]; for (i=b+1; i<=t; i++){ if (v[i] < valor_pivote){ pivote++; temp=v[i]; v[i]=v[pivote]; v[pivote]=temp; } } temp=v[b]; v[b]=v[pivote]; v[pivote]=temp; return pivote; } void Quicksort(int* v, int b, int t) { int pivote; if(b < t){ pivote=colocar(v, b, t); Quicksort(v, b, pivote-1); Quicksort(v, pivote+1, t); } } #include <stdio.h> #include <iostream.h> #include <conio.h> #include <stdlib.h> #include <string.h> using namespace std; typedef struct nodo
  • 5. { int cedula; struct nodo*siguiente; }tiponodo; typedef tiponodo *pnodo; typedef tiponodo *cola; cola cola_n=NULL; cola cola_vip=NULL; int solic; void insertar (cola *cola_n) { cola aux, creado; creado=(pnodo)malloc(sizeof(tiponodo)); cout<<" |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"<<endl; cout<<" ||||||||||||||||||||METROPOLI banco universal||||||||||||||||||||"<<endl; cout<<" |||||||||||||||||||||||Le da la bienvenida|||||||||||||||||||||||"<<endl; cout<<" |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"<<endl; cout<<" Estimado cliente: Introduzca su numero de cedula"<<endl; cin>> creado->cedula; cout<<" Pronto sera atendido"<<endl; if ((*cola_n)==NULL) { creado->siguiente=*cola_n; *cola_n=creado; } else { aux=*cola_n; while(aux!=NULL) { if(aux->siguiente==NULL) { creado->siguiente=aux->siguiente; aux->siguiente=creado; aux=aux->siguiente; } aux=aux->siguiente; } } } void mostrar_cola (cola cola_n) { cola aux; aux=cola_n; if(aux==NULL) { cout<<"No hay clientes en cola"<<endl; } else { while(aux!=NULL)
  • 6. { cout<<"Cedula: "<<aux->cedula<<endl; cout<<""<<endl; aux=aux->siguiente; cout<<"* Clientes ordenados por orden de llegada((((((SIMCOLAS))))))"<<endl; } } } //modificado hasta acá... falta de orden por parte del creador void insertar_vip (cola *cola_vip){ cola aux_2, creado_vip; creado_vip=(pnodo)malloc(sizeof(tiponodo)); cout<<" |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"<<endl;//62 cout<<" ||||||||||||||||||||METROPOLI banco universal||||||||||||||||||||"<<endl; cout<<" |||||||||||||||||||||||Le da la bienvenida|||||||||||||||||||||||"<<endl; cout<<" |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"<<endl; cout<<" Estimado cliente: Introduzca su numero de cedula"<<endl; cin>> creado_vip->cedula; cout<<" Pronto sera atendido"<<endl; if ((*cola_vip)==NULL){ creado_vip->siguiente=*cola_vip; *cola_vip=creado_vip; }else{ aux_2=*cola_vip; while(aux_2!=NULL){ if(aux_2->siguiente==NULL){ creado_vip->siguiente=aux_2->siguiente; aux_2->siguiente=creado_vip; aux_2=aux_2->siguiente; } aux_2=aux_2->siguiente; } } } void mostrar_cola_vip (cola cola_vip){ cola aux_2; aux_2=cola_vip; if(aux_2==NULL){ cout<<"No hay clientes V.I.P en cola"<<endl; }else{ while(aux_2!=NULL){ cout<<"Cedula: "<<aux_2->cedula<<endl; cout<<""<<endl; cout<<"* Clientes ordenados por orden de llegada((((((SIMCOLAS))))))"<<endl; aux_2=aux_2->siguiente; } } } void pop (cola *cola_n){ if((*cola_n)==NULL){ cout<<"No hay clientes en cola ((((((SIMCOLAS))))))"<<endl; cout<<""<<endl; }
  • 7. if((*cola_n)!=NULL){ cout<<"Cliente: "<<(*cola_n)->cedula; cout<<" es su turno"<<endl; *cola_n=(*cola_n)->siguiente; free(cola_n); system("PAUSE"); cout<<""<<endl; } if((*cola_n)==NULL){ cout<<"No hay clientes en cola ((((((SIMCOLAS))))))"<<endl; cout<<""<<endl; }else{ cout<<"Cliente: "<<(*cola_n)->cedula; cout<<" es su turno"<<endl; *cola_n=(*cola_n)->siguiente; free(cola_n); system("PAUSE"); cout<<""<<endl; } } void pop_vip(cola *cola_vip){ if(cola_vip!=NULL){ cout<<"Cliente: "<<(*cola_vip)->cedula; cout<<" es su turno"<<endl; *cola_vip=(*cola_vip)- >siguiente; free(cola_vip); }else{ cout<<"No hay usuarios V.I.P en cola ((((((SIMCOLAS))))))"<<endl; } } void menu(); void Insertar(); void insertar_vip(); void mostrar_cola(); void mostrar_colavip(); void solicitar_numero(); void salir(); struct perly{ char uxer[]; }data; struct perly *p = &data; int main(int argc, char *argv[]) { system("color 0a");
  • 8. cout<<" * * * "<<endl; cout<<" * * "<<endl; cout<<" * | * * * * "<<endl; cout<<" * -+- * "<<endl; cout<<" __ | * * * * "<<endl; cout<<" ___| | * _|_ * ____ ____ "<<endl; cout<<" [_]|°°|__ _| |_ * | |....| |....| * * "<<endl; cout<<" | | _|[] []|_ ___ | |....| | ___|__ "<<endl; cout<<" [_]| °° |__|_ ______| | | |_| |....| || -- - | * * "<<endl; cout<<" |________ |__ | |# #| |_| |....| || - -- | _____ "<<endl; cout<<" [_]| _____ | |__[]| | | |_| |....|__|| -- - | |* * *| "<<endl; cout<<" | [___] | |__ |# #| |_| |....|__|| -- -_|_|* * *| "<<endl; cout<<" [_]| | °° | | |__| |__|....| || ___|* *|* * *| "<<endl; cout<<" | _____ | |__ #|_______|....| | |* *|* *|* * *| "<<endl; cout<<" [_]| [___] | °° |__|_______|__ | | |* *|* *|* * *| "<<endl; cout<<" | | __|_____________|__ |* *|* *|* * *| "<<endl; cout<<" [_]| _____ | °° _|___________________|_ |* *|* *|* * *| "<<endl; cout<<" | [___] | |_______________________| ______________ "<<endl; cout<<" __|_______|_________|_______________________| _________________ "<<endl; cout<<" | _______________________________________________________________|"<<endl; cout<<" |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"<<endl;//62 cout<<" ||||||||||||||||||||METROPOLI banco universal||||||||||||||||||||"<<endl; cout<<" ||||||||||||Sistema Integral para el Manejo de COLAS|||||||||||||"<<endl; cout<<" ||||||||||||||||||||||||||||| SIMCOLAS||||||||||||||||||||||||||||"<<endl; cout<<" |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"<<endl; cout<<" |||||||||Creado por: Javier Rodriguez Caracas- Venezuela||||||||||"<<endl; cout<<" |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"<<endl; cout<<" Login: "; char usuario[6] = "jahvi"; cin.getline(p->uxer,6); if (strcmp(p->uxer,usuario) == 0) { cout<<"Bienvenid@ al sistema "<<endl; menu(); cout<<""<<endl; }else{ cout<<"Acceso Denegado. Consulte al Admisnistrador "<<endl;
  • 9. } system("PAUSE"); return EXIT_SUCCESS; } void menu() { short a; do { cout<<""<<endl; cout<< "0 - Agregar Cliente"<<endl; cout<< "1 - Agregar Cliente V.I.P"<<endl; cout<< "2 - Solicitar Numero"<<endl; cout<< "3 - Mostrar Cola"<<endl; cout<< "4 - Mostrar Cola V.I.P"<<endl; cout<< "5 - Salir del Sistema"<<endl; cout<<""<<endl; fflush(stdout); cout<<"Opcion #:"; cin>>a; cout<<""<<endl; if (a == 5) exit(1); switch(a){ case 0 : Insertar(); break; case 1 : insertar_vip(); break; case 2 : solicitar_numero(); break; case 3 : mostrar_cola(); break; case 4 : mostrar_colavip(); break; case 5 : salir(); break; default : puts("Usted no ha seleccionado nada, porfavor seleccione algon"); break; }; } while (1); } void Insertar(){
  • 10. insertar(&cola_n); } void insertar_vip(){ insertar(&cola_vip); } void mostrar_cola(){ mostrar_cola(cola_n); } void mostrar_colavip(){ mostrar_cola_vip(cola_vip); } void solicitar_numero(){ pop(&cola_n); if(cola_vip!=NULL){ pop_vip(&cola_vip); }else{ cout<<"No hay cliente V.I.P en cola ((((((SIMCOLAS))))))"<<endl; } } void salir(){ } ordenamiento shell public static void main(String [] args) { //arreglo int Entrada[] = { 321, 123, 213, 234, 1, 4, 5, 6, 21, 15 }; //llamada shellSort(Entrada); for (int i = 0; i < Entrada.length; i++) { System.out.print(Entrada[i]+" "); } } public static void shellSort( int vec[]) { // saltos for( int p = vec.length / 2; p > 0; p = p == 2 ? 1 : (int) ( p / 2.2 ) ) { for( int i = p; i < vec.length; i++) { int tmp = vec[i]; int j; for(j = i; j >= p && tmp < vec[j - p]; j -= p ) { vec[j] = vec[j - p]; } vec[j] = tmp; } } }