Buenas, estaba buscando un algoritmo para hacer una especie de "menu principal" en iThunder OS y me preguntaba si este algoritmo sería la solución, y en caso de que sea, como lo podría "implementar" en Lua (ya que vienen ejemplos en otros lenguajes C, C++, Java... pero no Lua).
Lo único que me gustaría saber es eso: si funcionaría dicho algoritmo aplicado a una tabla de elementos (iconos de las apps en este caso).
Gracias :D
EDITO: he estado estos últimos minutos trasteando intentando convertir el pseudocódigo de ejemplo:
algoritmo insertSort( A : lista de elementos ordenables )
para i=1 hasta longitud(A) hacer
index=A[i]
j=i-1
mientras j>=0 y A[j]>index hacer
A[j+1] = A[j]
j = j - 1
fin mientras
A[j+1] = index
fin para
fin algoritmo
En código Lua. Aqui os dejo lo que he intentado, a ver si está bien:
Primero cargo tabla y elementos...
-- Primero se crea una tabla válida con 4 elementos por ejemplo:
elementos = {
app1 = LOQUESEA,
app2 = LOQUESEA,
app3 = LOQUESEA,
app4 = LOQUESEA,
}
Y aquí viene el algoritmo "traducido"...
-- Intento de traducción del algoritmo:
function insertSort(elementos)
for i=1,#elementos do
index=elementos[i]
j=i-1
while j >= 0 and elementos[j] > index do
elementos[j+1] = elementos[j]
j = j - 1
end
elementos[j+1] = index
end
end
Creo que está bien... a ver que os parece...
Gracias a ambos :D
Gracias a ambos (Dev y Nekerafa) :D
Mmm...
Ya dije desde un principio que añadierais el manual de lua a marcadores XD
Lua incluye una función de ordenamiento de tablas,
table.sort
(tabla [, comparador])
. Tienes más información en el propio manual, y para la próxima mira si está en el manual: http://www.lua.org/manual/5.1/es/EDITO: Ups, Deviante se me adelantó XD
NekeOS, el nuevo shell para PSP
PS4 500GB OFW, PS3 320GB OFW, PS3 500GB OFW, PSP 6.39 PRO-C Fix4.
Sony Xperia Z1 Compact con Android 5.1.1
Portatil Lenovo z50-70 Intel® Core™ i7-4510U y NVIDIA GeForce 840M con Elementary OS 0.3.2 Freya (64 bits) y Windows 10 (64 bits).
Pero mira que.....
Pero mira que os gusta complicaros la vida por no perder un poco de tiempo en leer los manuales... preferis buscar algoritmos que hagan cosas raras, antes de saber realmente qué quereis... buscáis respuestas sin conocer las preguntas adecuadas...
Así se busca, y ésta es la respuesta:
function ordena( tabla , indice ) do return table.sort(ordena,function(a,b) return a[indice] < b[indice]; end); end
Suponiendo que tenemos una tabla:
mitabla = {
{ numero = 1, imagen = .... },
{ numero = 8, imagen = .... },
{ numero = 5, imagen = .... },
}
Despues de un mitabla = ordena(mitabla,"numero"); tenemos:
mitabla = {
{ numero = 1, imagen = .... },
{ numero = 5, imagen = .... },
{ numero = 8, imagen = .... },
}
Actualmente desarrollando nuestra web y UXCode : http://www.gcrew.es
Umm. El algoritmo que quieres
Umm. El algoritmo que quieres usar sirve para ordenar una lista de números. No entiendo que es lo que quieres hacer.
Mmmm...
Con que una lista de números... entiendo, se podría hacer algo así:
Y entonces con el algoritmo hacer una especie de variable "seleccionado = false" y si al hacer "controls.press("triangle")" entonces la app correspondiente es "seleccionado = true" para que al "controls.press("up")" cambie de "orden" por medio del algoritmo. ¿Lo entiendes más o menos?