Como limitar un resultado en un ordenamiento de Burbuja

Iniciado por luis456, 26 Diciembre 2012, 07:05 AM

0 Miembros y 2 Visitantes están viendo este tema.

luis456

Hola y Feliz navidad a todos

Bien tengo que limitar que los resultados a ordenar y mostrar en esta funcion sea algo como que " resultado no sea mayor que 80 x ejemplo "

parte del codigo que me ordena es este pero npi :)

//ORDENAMIENTO MEDIANTE EL METODO DE BURBUJA
for(int i = 0; i < contador - 1; i++){
for(int j = i + 1; j < contador; j++){
if(resultados[i] > resultados[j]){//Si resultados[i] es mayor a resultados[j] ordenamiento ascendente
//ACA HACEMOS EL INTERCAMBIO DE VALORES DE resultados[i] a resultados[j] y viceversa
auxiliar = resultados[i];
resultados[i] = resultados[j];
resultados[j] = auxiliar;
// filtra = contador ;
}
}
}
//MOSTRAMOS LOS NUMEROS ORDENADOS///////////////aca puse esto mientras
cout<<"\nRESULTADOS EN ORDEN\n";



Luis
Que tu sabiduria no sea motivo de Humillacion para los demas

rir3760

El algoritmo que utilizas para ordenar el array no es Burbuja, es Selección. Si realmente quieres aplicar el algoritmo BubbleSort hay varios ejemplos en el foro, solo es cuestión de utilizar el motor de búsqueda.

Y si quieres aplicar alguna limitante a la ordenacion debes explicarte de una mas clara ya que no se entiende. Si nos puedes poner un ejemplo de la entrada y salida mejor.

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

luis456

Cita de: rir3760 en 26 Diciembre 2012, 17:26 PM
El algoritmo que utilizas para ordenar el array no es Burbuja, es Selección. Si realmente quieres aplicar el algoritmo BubbleSort hay varios ejemplos en el foro, solo es cuestión de utilizar el motor de búsqueda.

Y si quieres aplicar alguna limitante a la ordenacion debes explicarte de una mas clara ya que no se entiende. Si nos puedes poner un ejemplo de la entrada y salida mejor.

Un saludo


Este pedazo simplemente ordena de menor a mayor el resultado de una ecuación en numeros ejemplo 1 2 3 4 5 6 7 8 10 15 25 38 45 etttt lo que nesecito es que no pase de o que no muestre mas de  por ejemplo el numero 80


1 2 3 4 5 6 9 10 45 68 77 79,,no sigue se para en el 79 y acaba la funcion
me parece que donde tengo que poner la condicional es en

resultados[j] = auxiliar;

luis



Que tu sabiduria no sea motivo de Humillacion para los demas

leosansan

Cita de: luis456 en 27 Diciembre 2012, 12:17 PM

1 2 3 4 5 6 9 10 45 68 77 79,,no sigue se para en el 79 y acaba

Primero se tienen que ordenar todos, ya que si pones la condición en el "proceso" de ordenamiento y se encuentra con 80 se pararía.
Es decir, la condición la impondrías en la "impresión" de los números ordenados:
Código (cpp) [Seleccionar]
for (i=0; i< Tam; i++) {
        if (array[i]>=80) break;
         cout <<array[i])<<" ";
}

Saluditos!.        

luis456

Cita de: leosansan en 27 Diciembre 2012, 16:04 PM
Primero se tienen que ordenar todos, ya que si pones la condición en el "proceso" de ordenamiento y se encuentra con 80 se pararía.
Es decir, la condición la impondrías en la "impresión" de los números ordenados:
Código (cpp) [Seleccionar]
for (i=0; i< Tam; i++) {
        if (array[i]>=80) break;
         cout <<array[i])<<" ";
}

Saluditos!.        



Bien si te entendi seria de esta forma no ?

//MOSTRAMOS LOS NUMEROS ORDENADOS///////////////aca puse esto mientras
cout<<"\nRESULTADOS EN ORDEN\n";
////
    for(int i = 0; i < contador; i++){
cout<<resultados[i]<<" ";//Informamos cada numero de los resultados seguidos de un espacio
}

for (i=0; i< Tam; i++) {  <----------------------pero no entiendo aca
        if (resultados[i]>=80) break;
         cout <<resultados[i])<<" ";
}



Que tu sabiduria no sea motivo de Humillacion para los demas

leosansan

Cita de: luis456 en 27 Diciembre 2012, 16:50 PM


seria de esta forma ¡ ¡ ¡

//MOSTRAMOS LOS NUMEROS ORDENADOS///////////////aca puse esto mientras
cout<<"\nRESULTADOS EN ORDEN\n";
////
    for(int i = 0; i < contador; i++){

        if (resultados[i]>=80) break;
         cout <<resultados[i])<<" ";
}


Saluditos!. :rolleyes: :rolleyes: :rolleyes: :rolleyes:

luis456

Cita de: leosansan en 27 Diciembre 2012, 17:32 PM
Saluditos!. :rolleyes: :rolleyes: :rolleyes: :rolleyes:


Bueno realmente no se como ya darte las gracias :) ya entendí como funciona

Luis
Que tu sabiduria no sea motivo de Humillacion para los demas