[C con Clase] Método de Ordenamiento (Burbuja)

Paco ozo.froid en gmail.com
Jue Oct 7 08:51:06 CEST 2010


>  *Hola Gente [image: Guiño]!!!
> *
> *Empecé estudiar el método de ordenamiento tipo burbuja, pero hay una
> parte que no entiendo que es la siguiente:*
> *
> ------------------------------
> *
> *
>
>      for (i = 1 ; i < TAM ; i++)
>
>
>      for (j = 0 ; j < TAM - 1 ; j++) //¿Por que el TAM - 1? , no
entiendo porque le resta 1.
>
>
>      if  (lista[j] > lista[j+1])
>
>
>
>      temp = lista[j];
>
>      lista[j] = lista[j + 1];
>
>      lista[j + 1] = temp;
>
> ------------------------------
>
> Les puede parecer una boludes(idiotez) a la mayoría pero simplemente >
> no la encajo esa parte , pero el resto

El motivo es que dentro del bucle j, si lo haces hasta TAM, te saldrías
de la lista. 

Si j = TAM entonces lista[j+1] = lista[TAM+1] luego estás fuera de la
lista.

Por otra parte; ¿ estás seguro que es un 1 y no una i ? Lo digo porque
este método va dejando los valores más altos arriba en la lista y es una
tontería "volver a ordenarlos". Si en el segundo bucle haces un 

j < TAM -i

tu bucle no pasaría de nuevo por la parte ya ordenada. Y además se le
daría una utilidad a la i

un saludo
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20101007/0bcf8935/attachment.sig>


Más información sobre la lista de distribución Cconclase