Unidad 5 
Métodos de ordenamiento
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).
 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.
 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.
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.
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.
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.
 Los algoritmos de ordenamiento por distribución se clasifican en: 
 CountingSort. 
 RadixSort. 
 BucketSort.
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.
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.
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.
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

Unidad 5

  • 1.
    Unidad 5 Métodosde ordenamiento
  • 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étodosdirectos, 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 algoritmosde 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 laburbuja  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  Elmé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  Enel 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 algoritmosde ordenamiento por distribución se clasifican en:  CountingSort.  RadixSort.  BucketSort.
  • 9.
    Radix  Elmé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  Paraimplementar 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  Estemé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