Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - IhackYou

#1
Este es mi primer Aporte, realmente buscaba algo a que aportar a la comunidad...
En esta ocasión quisiera Compartir Este programa sencillo hecho en C

Problemática:
    Ordenar un Arreglo sin Modificar/Cambiar De  ese Arreglo, Solamente por Indices

Como lo pide.. Crearemos  un arreglo que almacene los indices del Arreglo original y los vamos a ir ordenando  , la impresión que gusten sera de Menor a Mayor o viceversa
En este caso yo lo hice de Mayor a Menor

Ahora por ultimo, Se que aquí pueden haber mejores programadores que dominen este lenguaje
Hay alguna forma de Mejorar el código u otra forma mas eficaz de hacerlo?
Código: c

#include <stdio.h>
#define n 33

int main(){
    int promedio[n] = {7,3,1,10,5,10,8,5,3,5,1,6,4,7,9,8,1,10,9,8,1,7,6,4,3,5,1,0,10,8,10,9,8};
    int orden[n] ={}, i=0, j= 0;
    orden[0] = 0;
    int aux = 0;

    for(i = 0; i < n ; i++){
        orden[i] = i;
        for(j=0; j < i; j++){
            //aux = orden[j];
            if(promedio[orden[j]] < promedio[i]){
                aux = orden[i];
                orden[i] = orden[j];
                orden[j] = aux;
            }
        }
    }
    //Orden de Arreglo Sin Modificar
    for(i=0; i < n; i++){
       printf("\n%d", promedio[orden[i]]);
    }
    //Arreglo Original
    for(i=0; i < n; i++){
       printf("\n%d", promedio[i]);
    }

    return 0 ;
}