Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: luis456 en 26 Diciembre 2012, 07:05 am



Título: Como limitar un resultado en un ordenamiento de Burbuja
Publicado por: luis456 en 26 Diciembre 2012, 07:05 am
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 :)

Código:
//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


Título: Re: Como limitar un resultado en un ordenamiento de Burbuja
Publicado por: 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


Título: Re: Como limitar un resultado en un ordenamiento de Burbuja
Publicado por: luis456 en 27 Diciembre 2012, 12:17 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





Título: Re: Como limitar un resultado en un ordenamiento de Burbuja
Publicado por: leosansan en 27 Diciembre 2012, 16:04 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
  1. for (i=0; i< Tam; i++) {
  2.        if (array[i]>=80) break;
  3.         cout <<array[i])<<" ";
  4. }
Saluditos!.        


Título: Re: Como limitar un resultado en un ordenamiento de Burbuja
Publicado por: luis456 en 27 Diciembre 2012, 16:50 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
  1. for (i=0; i< Tam; i++) {
  2.        if (array[i]>=80) break;
  3.         cout <<array[i])<<" ";
  4. }
Saluditos!.        



Bien si te entendi seria de esta forma no ?

Código:
//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])<<" ";
}




Título: Re: Como limitar un resultado en un ordenamiento de Burbuja
Publicado por: leosansan en 27 Diciembre 2012, 17:32 pm


 seria de esta forma ¡ ¡ ¡

Código:
//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:


Título: Re: Como limitar un resultado en un ordenamiento de Burbuja
Publicado por: luis456 en 27 Diciembre 2012, 18:35 pm
Saluditos!. :rolleyes: :rolleyes: :rolleyes: :rolleyes:


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

Luis