Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Merge Sort
2
Merge Sort Este algoritmo tambien es llamado de Intercalación o combinación, debido que combina (intercala) dos estructuras previamente ordenadas.
3
Merge Sort Supongamos los siguientes vectores previamente ordenados, el nuevo vector contendra la cantidad de elementos de ambos I J A 3 5 8 12 17 B 1 6 9 24 Se comparan los primeros elementos 3 y 1, el menor se copia K C
4
Merge Sort K C 1 Se copia el valor del vector B y los subindices K y J, se mueven una posición J I 1 6 9 24 A 3 5 8 12 17 B Se comparan los siguientes valores 3 y 6, se mueve el menor
5
Merge Sort K C 1 3 Se copia el valor del vector A y los subindices K e I, se mueven una posición J I 1 6 9 24 A 3 5 8 12 17 B Se comparan los siguientes valores 5 y 6, se mueve el menor
6
Merge Sort K C 1 3 5 Se copia el valor del vector A y los subindices K e I, se mueven una posición J I 1 6 9 24 A 3 5 8 12 17 B Se comparan los siguientes valores 8 y 6, se mueve el menor
7
Merge Sort K C 1 3 5 6 Se copia el valor del vector B y los subindices K y J, se mueven una posición J I 1 6 9 24 A 3 5 8 12 17 B Se comparan los siguientes valores 8 y 9, se mueve el menor
8
Merge Sort K C 1 3 5 6 8 Se copia el valor del vector A y los subindices K e I, se mueven una posición J I 1 6 9 24 A 3 5 8 12 17 B Se comparan los siguientes valores 12 y 9, se mueve el menor
9
Merge Sort K C 1 3 5 6 8 9 Se copia el valor del vector B y los subindices K y J, se mueven una posición J I 1 6 9 24 A 3 5 8 12 17 B Se comparan los siguientes valores 12 y 24, se mueve el menor
10
Merge Sort K C 1 3 5 6 8 9 12 Se copia el valor del vector A y los subindices K e I, se mueven una posición I J 1 6 9 24 A 3 5 8 12 17 B Se comparan los siguientes valores 17 y 24, se mueve el menor
11
Merge Sort De igual forma se sigue con los siguientes valores hasta completar el recorrido K C 1 3 5 6 8 9 12 17 24 El proceso termina cuando uno de los dos subindices I o J, llega hasta la longitud del vector. En ese momento se termina de copiar los siguientes valores del vector
12
Merge Sort while(i<=m && j<=l) void merge(int f, int m, int l, {
{ if(b[i]<b[j]) a[k++] = b[i++]; else a[k++] = b[j++]; } while(i<=m) a[k++] = b[i++]; while(j<=l) a[k++] = b[j++]; } void merge(int f, int m, int l, int *a,int n) { int i,j,k,b[n]; for(i=f;i<=l;i++) b[i] = a[i]; i = k = f; j = m+1;
13
Merge Sort Se puede utilizar este algoritmo para ordenar un vector.
void mergeSort(int first, int last, int *a, int n) { Int mid; if(last>first) { mid=(first+last)/2; mergeSort(first,mid,a,n); mergeSort(mid+1,last,a,n); merge(first,mid,last,a,n); } }
14
Merge Sort
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.