Gilberto 🦁 PRO
Desarrollo visualizaciones y aplicaciones en línea, colaboro con distintos medios digitales
Una de las operaciones más comunes en computación es el ordenamiento de datos respecto a algún criterio en particular
Por lo mismo, son de las operaciones más estudiadas por el campo, así que nos vamos a enfocar en sólo tres algoritmos específicos:
Sea a un arreglo de enteros de longitud n, entonces:
Para i = 0 hasta n - 2
Para j = 0 hasta n - 2
Si (a(j) > a(j + 1)
temp = a(j)
a(j) = a(j + 1)
a(j + 1) = temp
Fin-si
Fin-para
Fin-paraBásicamente lo único que hace es recorrer el arreglo y cambar el orden de dos elementos consecutivos que estén fuera de orden
Sea a un arreglo de enteros de longitud n, entonces:
Para i = 1 hasta n - 1
j = i
Mientras (j > 0) Y (a(j) < a(j - 1))
temp = a(j)
a(j) = a(j - 1)
a(j - 1) = temp
j = j - 1
Fin-mientras
Fin-paraBásicamente lo único que hace es recorrer el arreglo e insertar cada elemento en la parte ordenada del arreglo que le corresponde
Sea a un arreglo de enteros de longitud n, entonces:
Para i = 0 hasta n - 1
sub = i
Para j = i + 1 hasta n - 1
Si a(j) < a(sub)
sub = j
Fin-si
Fin-para
temp = a(i)
a(i) = a(sub)
a(sub) = temp
Fin-paraSe encuentra el menor elemento en la parte no ordenada del arreglo y cambiarlo con el primer elemento en la parte ordenada del arreglo
| Burbuja | Inserción | Selección | |
|---|---|---|---|
| Mejor tiempo | O(n) | O(n) | O(n2) |
| Tiempo promedio | O(n2) | O(n2) | O(n2) |
| Peor tiempo | O(n2) | O(n2) | O(n2) |
| Espacio | O(1) | O(1) | O(1) |
Al igual que las operaciones de ordenamiento, las operaciones de búsqueda también están muy estudiadas en el campo, así que nos vamos a enfocar en dos algoritmos muy específicos:
i = 0
Mientras i < n
Si a(i) == valor
Regresar i
Fin-si
Si no
i = i + 1
Fin-si no
Fin-mientras
Regresar -1Sea a un arreglo de enteros de longitud n, entonces:
Se compara el valor con cada elemento del arreglo y se detiene cuando lo encuentra (si es que existe)
inf = 0
sup = n - 1
Mientras inf <= sup
centro = ((sup - inf) / 2) + inf
Si a[centro] = valor
Regresar centro
Fin-si
Si no
Si valor < a[centro]
sup = centro - 1
Fin-si
Si no
inf = centro + 1
Fin-si no
Fin-si no
Fin-mientras
Regresar -1Sea a un arreglo ordenado de enteros de longitud n, entonces:
Se compara el valor con el valor central del arreglo, y se vuelve a comparar con la mitad de cada parte hasta ser encontrado (si es que existe)
| Secuencial | Binaria | |
|---|---|---|
| Mejor tiempo | O(1) | O(1) |
| Tiempo promedio | O(n) | O(log n) |
| Peor tiempo | O(n) | O(log n) |
| Espacio | O(1) | O(1) |
By Gilberto 🦁
Algoritmos de búsqueda y ordenamiento
Desarrollo visualizaciones y aplicaciones en línea, colaboro con distintos medios digitales