La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Método de ordenación por inserción

Presentaciones similares


Presentación del tema: "Método de ordenación por inserción"— Transcripción de la presentación:

1 Método de ordenación por inserción
Mayra Veronica Sierra Torres Guillermo Escamilla Navarro

2 El método de inserción es el que generalmente utilizan los jugadores de cartas cuando ordenan éstas, de ahí que también se conozca con el nombre de método de la baraja. La idea central de este algoritmo consiste en insertar un elemento del arreglo en la parte izquierda del mismo, que ya se encuentra ordenada. Este proceso se repite desde el segundo hasta el n-esimo elemento. 

3 Este método toma cada elemento del arreglo para ser ordenado y lo compara con los que se encuentran en posiciones anteriores a la de él dentro del arreglo. Si resulta que el elemento con el que se está comparando es mayor que el elemento a ordenar, se recorre hacia la siguiente posición superior.

4 Si por el contrario, resulta que el elemento con el que se está comparando es menor que el elemento a ordenar, se detiene el proceso de comparación pues se encontró que el elemento ya está ordenado y se coloca en su posición (que es la siguiente a la del último número con el que se comparó).

5 Ejemplo: Se desean ordenarse las siguientes clave del arreglo A: 15, 67, 08, 16, 44, 27, 12, 35 Primera pasada A[2] < A[1] 67 < 15 No hay intercambio A: 15, 67, 08, 16, 44, 27, 12, 35 Segunda pasada A[3] < A[2] 08 < 67 Si hay intercambio A[2] < A[1] 08 < 15 Si hay A: 15, 08, 67, 16, 44, 27, 12, 35 Tercera pasada A[4] < A[3] 08 < 15 Si hay intercambio A[3] < A[2] 08 < 15 Si hay intercambio A= 08, 15, 67, 16, 44, 27, 12, 35 Hasta la séptima pasada el arreglo queda ordenado: 08, 12, 15, 16, 27, 35, 44, 67

6 C A continuación se muestra el Ordenamiento por inserción en distintos
lenguajes de programación: C void insertionSort(int numbers[], int array_size) { int i, j, index; for (i=1; i < array_size; i++) { index = numbers[i]; j = i-1; while (j >= 0 && numbers[j] > index) numbers[j + 1] = numbers[j]; j--; } numbers[j+1] = index; }}

7 C++ template <class T> void insertionSort(std::vector<T>& v, int fin) { int i, j, index; for (i=1; i <fin; i++) { index = v.at(i); j = i-1; while (j >= 0 && v.at(j)>index) { v.at(j+1)=v.at(j); j--; } v.erase(v.begin()+j+1); v.insert(v.begin()+j+1,index); }}


Descargar ppt "Método de ordenación por inserción"

Presentaciones similares


Anuncios Google