leccion 6 ordenamientos internos

Upload: idsystems

Post on 10-Apr-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/8/2019 Leccion 6 Ordenamientos Internos

    1/21

    Leccion 6 ORDENAMIENTOS INTERNOS

    En esta Unidad explicaremos 4 algoritmos para el Ordenamiento de Arreglos en Memoria Ram.

    A continuacin mencionaremos los diferentes mtodos para ordenar:

    1. Burbuja2. ShellSort

    3. RadixSort

    4. QuickSort

    Burbuja

    Definicin:

    El mtodo de la burbuja es una comparacin lineal con cada uno de los elementos, el elemento que sea

    menor contra el que se esta comparado intercambiaran posiciones. Este mtodo no es recomendado para

    grandes comparaciones, ya que es un proceso muy lento y requiere de una gran cantidad de Memoria

    Ram.

    Programa:

    #include

    #include

    class Lista

    {

    private:

    int Lista[10],N;

    public:

    Lista()

    {

    for(int i=0;i

  • 8/8/2019 Leccion 6 Ordenamientos Internos

    2/21

    void Burbuja(void)

    {

    if(N!=0)

    {

    int i,j,aux;

    for(i=0;i

  • 8/8/2019 Leccion 6 Ordenamientos Internos

    3/21

    cout

  • 8/8/2019 Leccion 6 Ordenamientos Internos

    4/21

    cout

  • 8/8/2019 Leccion 6 Ordenamientos Internos

    5/21

    break;

    case 2:

    tec.Burbuja();

    break;

    case 3:

    cout

  • 8/8/2019 Leccion 6 Ordenamientos Internos

    6/21

    ShellSort

    Definicin:

    Esta forma de ordenacin es muy parecida a la ordenacin con burbuja. La diferencia es que no es una

    comparacin lineal, sino que trabaja con una segmentacin entre los datos. Por lo tanto es un buen

    mtodo, pero no el mejor para implementarlos en grandes arreglos.

    Programa:

    #include

    #include

    class Lista

    {

    private:

    int Lista[10],N;

    public:

    Lista()

    {

    for(int i=0;i

  • 8/8/2019 Leccion 6 Ordenamientos Internos

    7/21

    if(Lista[i-salto]

  • 8/8/2019 Leccion 6 Ordenamientos Internos

    8/21

    if(N

  • 8/8/2019 Leccion 6 Ordenamientos Internos

    9/21

    {

    for(int i=0;i

  • 8/8/2019 Leccion 6 Ordenamientos Internos

    10/21

    cin>>res;

    tec.Busqueda(res);

    break;

    case 4:

    cout

  • 8/8/2019 Leccion 6 Ordenamientos Internos

    11/21

    Programa:

    #include

    #include

    #include

    class Lista

    {

    private:

    int Lista[10],Temp[10],Elementos,N;

    public:

    Lista()

    {

    for(int i=0;i

  • 8/8/2019 Leccion 6 Ordenamientos Internos

    12/21

    }

    void RadixSort (int byte, int N, int *fuente, int *dest)

    {

    int cont[256];

    int ind[256];

    int i;

    memset(cont,0,sizeof(cont));

    for(i=0;i>(byte*8))&0xff]++;

    ind[0]=0;

    for(i=1;i(byte*8))&0xff]++]=fuente[i];

    }

    void Busqueda(int Elem)

    {

    if(N!=9)

    {

    for(int i=0;i

  • 8/8/2019 Leccion 6 Ordenamientos Internos

    13/21

    }

    void Insertar(int Elem)

    {

    if(N!=-1)

    {

    Elementos++;

    Lista[N]=Elem;

    N--;

    cout

  • 8/8/2019 Leccion 6 Ordenamientos Internos

    14/21

    return;

    }

    void Recorrido()

    {

    if(N!=9)

    {

    for(int i=9;i!=N;i--)

    cout

  • 8/8/2019 Leccion 6 Ordenamientos Internos

    15/21

    break;

    case 2:

    tec.Ordenar();

    break;

    case 3:

    cout

  • 8/8/2019 Leccion 6 Ordenamientos Internos

    16/21

    }

    QuickSort

    Definicin:

    Probablemente este ser el mejor de los mtodos que mencionamos en esta unidad. Este divide

    aleatoriamente el arreglo para comparar si un elemento es mayor o menor. Dependiendo el resultado lo

    partir ya sea por la izquierda o derecha, de esta forma se repite el procedimiento para ordenarlos.

    Programa:

    #include

    #include

    class Lista

    {

    private:

    int Lista[10],N;

    public:

    Lista()

    {

    for(int i=0;i

  • 8/8/2019 Leccion 6 Ordenamientos Internos

    17/21

    while(Lista[dch]>Lista[menor])

    dch--;

    while((izq

  • 8/8/2019 Leccion 6 Ordenamientos Internos

    18/21

    cout

  • 8/8/2019 Leccion 6 Ordenamientos Internos

    19/21

    void Eliminar(int Elem)

    {

    if(N!=0)

    {

    for(int i=0;i

  • 8/8/2019 Leccion 6 Ordenamientos Internos

    20/21

    while(op!=6)

    {

    clrscr();

    cout

  • 8/8/2019 Leccion 6 Ordenamientos Internos

    21/21

    cin>>res;

    tec.Eliminar(res);

    break;

    case 6:

    cout