qsort()

qsort(<nombre estructura>, <nombre campo>, <modo>)

Descripción:

Ordena o desordena una estructura del programa por uno de sus campos.

Se trata de una simple pero versátil función que posibilita la rápida ordenación y desordenación de estructuras de datos.

Su uso es muy simple, se requiere únicamente el <nombre de la estructura>, el del <campo que se va a utilizar como índice>, y el <modo de ordenación>; uno de los indicados a continuación:

0 - Ordenación ascendente (de menor a mayor).

1 - Ordenación descendente (de mayor a menor).

2 - Desordenación aleatoria.

Se puede utilizar como campo índice cualquiera de los datos contenidos en la estructura, bien se trate de un dato numérico, o de una cadena de texto (en cuyo caso se ordenará alfabéticamente).

Programa ejemplo:
PROGRAM ejemplo_qsort;

GLOBAL

  STRUCT miestructura[9];
    STRING nombre[32];
    puntos;
    x,y;
  END

BEGIN

  //...

  // Ordena los registros de miestructura, de forma que se sitúen los de
  // mayor puntuación al principio

  qsort(miestructura,puntos,1);

  //...

END


Este ejemplo muestra la fácil utilización de la función qsort() para ordenar una estructura, que puede representar cualquier tipo de objeto dentro de un programa.

No es necesario que el campo utilizado como índice (puntos en este caso) sea el primero de la estructura.


Nota: La desordenación de una estructura requiere igualmente un campo que diferencie a los distintos registros de la misma. Esta operación puede ser útil para dotar de "aleatoriedad" a un programa (por ejemplo, para "barajar" un conjunto de cartas).