tengo esta matriz:clasificación int matriz con sólo 3 elementos
int [] myarray = {17, 6, 8};
¿Cuál es la mejor manera de solucionar esta matriz, en pseudocódigo?
Gracias!
tengo esta matriz:clasificación int matriz con sólo 3 elementos
int [] myarray = {17, 6, 8};
¿Cuál es la mejor manera de solucionar esta matriz, en pseudocódigo?
Gracias!
creo que esto debería ser bastante rápido (orden ascendente):
if (el1 > el2) Swap(el1,el2)
if (el2 > el3) Swap(el2,el3)
if (el1 > el2) Swap(el1,el2)
Su clásico tipo de burbuja desenrollada :-) +1. – paxdiablo
Este código hace 2 o 3 comparaciones y 4 registros de memoria en el peor de los casos, en contraposición a otra respuesta (siempre 3 comparaciones y 9 registros de memoria en el peor de los casos).
if a[0] < a[1]:
if a[1] > a[2]:
if a[0] < a[2]:
temp = a[1]
a[1] = a[2]
a[2] = temp
else:
temp = a[0]
a[0] = a[2]
a[2] = a[1]
a[1] = temp
else:
# do nothing
else:
if a[1] < a[2]:
if a[0] < a[2]:
temp = a[0]
a[0] = a[1]
a[1] = temp
else:
temp = a[0]
a[0] = a[1]
a[1] = a[2]
a[2] = temp
else:
temp = a[0]
a[0] = a[2]
a[2] = temp
Te daré +1 por eso, adamax. Aunque es feo leer, la pregunta _did_ pregunta por óptima y la tuya parece satisfacer eso :-) – paxdiablo
Tu algoritmo arroja un resultado incorrecto con {2, 3, 1} matriz. – nitrocaster
@nitrocaster Estoy bastante seguro de que funciona. – ionree
versión ligeramente más eficiente que la burbuja desenrollado tipo, no es óptimo, pero todavía bastante simple
if (el1 > el2) Swap(el1, el2)
if (el2 > el3) {
Swap(el2, el3)
if (el1 > el2) Swap(el1, el2)
}
No puedo creer que alguien votó por esto. Fue en -1. Acabo de subirlo y ahora está en 0. –
mayo this graphic muestra un árbol de decisión para la clasificación de tres elementos de ayuda:
¿De qué libro es esto? – johncip
Esto es de "Algoritmos Grundlegende" (http://www14.in.tum.de/~ga/) por Volker Heun - desafortunadamente en alemán solamente. Una figura muy similar se puede encontrar en "Introducción a los algoritmos" por Cormen y otros (http://mitpress.mit.edu/books/introduction-algorithms). –
Sabía que lo había visto en alguna parte ... ¿tal vez está en el libro de Sedgewick también? Pero para cualquier otra persona que se pregunte si realmente está en CLRS, en "Ordenando en tiempo lineal". ¡Gracias! – johncip
'ordenados (a) 'con mi pseudo' ordenó' la función que ordena en su lugar :) –
Muchos duplicados, por ejemplo http://stackoverflow.com/questions/3319993/sorting-the-three-integers-program –
Fácil: 'int [] myarray = {6, 8, 17};' :) –