Python Shell Sort
El ordenamiento Shell, también conocido como algoritmo de ordenamiento por incrementos decrecientes, es una versión mejorada y más eficiente del ordenamiento por inserción. Sin embargo, el ordenamiento Shell no es un algoritmo de ordenamiento estable.
La idea básica del ordenamiento Shell es: primero dividir la secuencia de registros a ordenar en varias subsecuencias para realizar un ordenamiento por inserción directa por separado; cuando los registros de toda la secuencia estén "básicamente ordenados", se realiza un ordenamiento por inserción directa sobre todos los registros.
Ejemplo
def shellSort(arr):
n = len(arr)
gap = int(n/2)
while gap > 0:
for i in range(gap,n):
temp = arr[i]
j = i
while j >= gap and arr[j-gap] >temp:
arr[j] = arr[j-gap]
j -= gap
arr[j] = temp
gap = int(gap/2)
arr = [ 12, 34, 54, 2, 3]
n = len(arr)
print ("Antes de ordenar:")
for i in range(n):
print(arr[i]),
shellSort(arr)
print ("\nDespués de ordenar:")
for i in range(n):
print(arr[i]),
Al ejecutar el código anterior, el resultado es:
排序前: 12 34 54 2 3 排序后: 2 3 12 34 54Otras extensiones
Python3 Ejemplos