Ejercicio 4a

Ejercicio 4a

de Agustín Marcio Ribeiro García -
Número de respuestas: 0

Buenas!, quería consultar si esto para la parte a) seria una solución adecuada. Desde ya muchas gracias!  

int inicio_1=0x100; 

int fin_1 = 0x128; 

int inicio_2 = 0x10A;

int fin_2 = 0x132;

int paso = 0x004; // largo de palabra:4 bytes

int dir=0x000

int dir_mayor=0x000;

int mayor=0x000;


do {

    // Inicializamos la búsqueda de la palabra más grande

    dir = inicio_1;

    mayor = Mem[dir];

    dir_mayor = dir;

    

    // Bucle para encontrar la palabra más grande en el conjunto actual

    do {

        if (Mem[dir] > mayor) {

            mayor = Mem[dir];

            dir_mayor = dir;

        }

        dir = dir + paso;

    } while (dir < fin_1);


    // Si el mayor no está ya en la última posición del conjunto actual, lo intercambiamos para descartarlo para la proxima iteracion

    if (dir_mayor != (fin_1 - paso)) {

        Mem[dir_mayor] = Mem[fin_1 - paso]; 

    }


    // Colocamos la palabra más grande al final del nuevo conjunto

    Mem[fin_2 - paso] = mayor;


    // Reducimos el conjunto para la siguiente iteración

    fin_1 = fin_1 - paso;

    fin_2 = fin_2 - paso;


} while (fin_2 > inicio_2);