2. Ordenación interna.
Ordenar significa reagrupar o reorganizar un conjunto de datos u objetos en
una secuencia especifica, la cual puede ser de dos formas distintas:
Ascendente (menor a mayor) o
Descendente (mayor a menor).
Los métodos de ordenación se clasifican en dos categorías:
Ordenación interna (de arreglos) y
Ordenación externa (de archivos).
Los métodos de ordenación interna a su vez se clasifican en:
Métodos directos (n2) y
Métodos logarítmicos (n * log n).
3. Los métodos directos, son los más simples y fáciles de entender, son
eficientes cuando se trata de una cantidad de datos pequeña. Los métodos
logarítmicos, son más complejos, difíciles de entender y son eficientes en
grandes cantidades de datos.
Los métodos directos más conocidos son:
Ordenación por intercambio.
Ordenación por inserción.
Ordenación por selección.
4. Los algoritmos de ordenación directa por intercambio que se analizaran son:
El método de la burbuja.
El método quicksort.
El método shellsort.
5. Método de la burbuja
El método de ordenación por intercambio directo o método de la burbuja, es el
más simple y consiste en comparar dos elementos adyacentes para determinar si
se realiza un intercambio entre los mismos, esto en caso de que el primero sea
mayor que el segundo (forma ascendente) o el caso de que el primero sea menor
que el segundo (forma descendente).
Una vez que los ciclos terminan la estructura debe quedar ordenada de forma
ascendente o descendente, pero este procedimiento es considerado como el pero
de los casos ya que si el número de elementos de la estructura es de 100, se
tienen que realizar 9900 comparaciones entes de terminar la ejecución del
método.
Una vez que los ciclos terminan la estructura debe quedar ordenada, la diferencia
con el procedimiento anterior radica en el número de comparaciones y posibles
intercambios que se presentan, en este segundo procedimiento, es menor ya que
cada pasada que se le da al arreglo se realiza una comparación menos que en la
pasada anterior.
6. QuickSort
El método de ordenamiento rápido o método quicksort, es una técnica basada
en otra conocida con el nombre divide y vencerás, que permite ordenar una
cantidad de elementos en un tiempo proporcional a n2 en el peor de los casos
o a n log n en el mejor de los casos. El algoritmo original es recursivo, como
la técnica en la que se basa.
La forma o técnica de reacomodo de los elementos del lado izquierdo y
derecho del pivote, aplica el siguiente procedimiento que es muy efectivo. Se
utilizan dos índices: izq, al que llamaremos índice inicial, y der, al que
llamaremos índice final.
7. ShellSort
En el método de ordenación por inserción directa, cada elemento se compara
con los elementos contiguos de su izquierda de uno por uno, para lograr su
ordenamiento; si por ejemplo, el elemento a comparar es el más pequeño y
se encuentra en la última posición del arreglo, hay que ejecutar muchas
comparaciones antes de colocar el elemento en su lugar de forma definitiva.
Para determinar el tamaño de los incrementos (saltos) constantes, el primero
debe ser generado a partir del tamaño del arreglo entre dos, obteniendo solo
su parte entera de la división o redondeando el resultado de la misma, y
posteriormente ir reduciendo a la mitad el incremento en cada repetición,
hasta que el incremento sea un uno.
8. Los algoritmos de ordenamiento por distribución se clasifican en:
CountingSort.
RadixSort.
BucketSort.
9. Radix
El método de ordenación radix es un algoritmo que ordena datos procesando
sus elementos de forma individual, según la posición que ocupan dentro del
dato. Los datos numéricos los por dígitos y los datos alfabéticos por letras.
El método radix se clasifica en dos tipos según el orden en el que procesan los
datos:
De derecha a izquierda y
De izquierda a derecha.
10. Quick sort
Para implementar este método se debe de recibir como argumentos el vector
con los números, la posición inicial y la posición final del vector (vec,
inicio(0),final(9)). Las posiciones recibidas de inicio y final se deben de
respaldar porque sus valores van cambiar durante la ejecución del método.
Los respaldos los llamaremos Izq y Der donde Izq tiene el valor recibido en
inicio y Der el valor recibido de final.
Estas variables se representan en el vector siguiente como las posiciones
inicial y final del vector respectivamente. También se debe de sacar un pivote
que esta dado por la suma de la posición inicial, final y dividida entre dos.
11. Shellsort
Para implementar este método se debe de recibir el vector y con el ya se
obtiene el tamaño del vector.
En este método se utiliza un intervalo que se calcula con el tamaño del vector
dividido entre 2, de tal forma que el intervalo da la mitad del vector y se
comparan los números de la posición 0, con el de la posición obtenida de
intervalo, si el primero es menor que el segundo se intercambian, y se avanza
al siguiente par (posición 1 con posición del intervalo mas 1) y así
sucesivamente.
12. Radix
Este método permite ordenar los números a través de los dígitos que
contienen los números utilizar estructuras dinámicas (colas).
pos 0 1 2 3 4 5 6 7
valores 125 7 58 17 5 328 168 218