Tutorial:Orden de Listas Avanzado

De GeoGebra Manual
Revisión del 04:03 9 abr 2012 de Spanish1 (discusión | contribs.) (Página creada con 'Para ordenar una lista de objetos de un modo tal que no lo hiciera posible el Comando Ordena, pueden emplearse alternativas: * para ordenar de modo descendiente en lugar de...')
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)
Saltar a: navegación, buscar

Para ordenar una lista de objetos de un modo tal que no lo hiciera posible el Comando Ordena, pueden emplearse alternativas:

  • para ordenar de modo descendiente en lugar de ascendiente, basta con incluir el Comando Invierte así, por ejemplo:
  • Si el tipo de objeto no es compatible con Ordena o el criterio de orden fuera diferente, se puede apelar a alguna de las maniobras detalladas a continuación.

Algoritmo

  1. Se denomina lista la lista a ordenar.
  2. lista_h = Ordena[Secuencia[(*número basado en la lista Elemento[lista, i]*, i), i, 1, Longitud[lista]]]
    Esto corresponde a c en la explicación (el listado de ayudas). La sección en negrita se denomina f en la explicación.
  3. lista_s = Secuencia[Elemento[lista, y(Elemento[lista_h, i])], i, 1, Longitud[lista]]
    Esta es la lista ordenada.

Explicación

Para aclarar la situación se formula la tarea matemáticamente:

  • Dada una lista (a_1, a_2, \ldots, a_n) \subset X y una aplicación f: X \to \mathbb R, se intenta encontrar una permutación \sigma \in S_n tal que f(a_{\sigma(k)}) \leq f(a_{\sigma(l)}) \; \forall (k,l) \in \mathbb N^2: 1 \leq k \leq l \leq n

Se puede pensar en la permutación \sigma como una renumeración tal que (a_{\sigma(1)}, a_{\sigma(2)}, \ldots, a_{\sigma(n)}) resulte la lista ordenada.

Así que primero es preciso llegar a una asignación de f para el ordenamiento correcto. Como en los siguientes casos:

Ejemplo: Si se desea ordenar una lista de puntos tal que su distancia al origen sea creciente, se tiene que X := \mathbb R^2 y f((x,y)) := \sqrt{x^2 + y^2} En GeoGebra , f de un punto A sería Distancia[A], por lo que la sección en negrita en el algoritmo sería Distancia[Elemento[lista, i]].
Ejemplo: Si se desea ordenar una lista de círculos por orden creciente de radios, la sección en negrita en el algoritmo sería Radio[Elemento[lista, i]].
Ejemplo: Una construcción completa para ordenar una lista de los números complejos por su argumento se puede encontrar en GeoGebra en http://www.geogebra.org/material/show/id/7518

La maniobra para resolver este problema en GeoGebra es utilizar el comando existente para ordenar una lista de puntos. En lugar de pensar en los puntos geométricamente, se los interpreta como pares de números. GeoGebra permite ordenar los puntos por sus abscisas para crear una lista de puntos \tilde c = (\tilde c_1, \ldots, \tilde c_n) con \tilde c_k := (f(a_k), k) y ordenar esta lista. Puede denominarse a la lista ordenada c = (c_1, \ldots, c_n)

Esta lista ordenada ahora nos permite construir \sigma. Porque y(c_{\sigma(k)}) = k. A partir de \sigma se puede construir la versión ordenada de la lista original.

en:Tutorial:Advanced List Sorting

© 2024 International GeoGebra Institute