Python程序实现希尔排序
当需要实现希尔排序时,定义一个函数,将一个列表和列表的长度作为参数传入。该列表按照特定数量的元素排序,其中数量是最大的值。只有当元素数量最小时,排序停止。
对列表中的所有子列表进行排序。
一个列表可以用于存储异质值(即任何数据类型的数据,如整数、浮点数、字符串等)。
下面是一个演示示例:
示例
def shell_sort(my_list, list_len):
interval = list_len // 2
while interval > 0:
for i in range(interval, list_len):
temp = my_list[i]
j = i
while j >= interval and my_list[j - interval] > temp:
my_list[j] = my_list[j - interval]
j -= interval
my_list[j] = temp
interval //= 2
my_list = [ 45, 31, 62, 12, 89, 5, 9, 8]
list_len = len(my_list)
print ("排序前的列表:")
print(my_list)
shell_sort(my_list, list_len)
print ("进行希尔排序后的列表:")
print(my_list)
输出
排序前的列表:
[45, 31, 62, 12, 89, 5, 9, 8]
进行希尔排序后的列表:
[5, 8, 9, 12, 31, 45, 62, 89]
说明
- 定义了一个名为’shell_sort’的方法,该方法使用列表和列表的长度作为参数。
- 通过使用’//’位运算符定义变量’interval’。
- 它执行向下取整除法。
- 它将值舍入到最接近的整数。
- 遍历列表,并创建一个临时变量。
- ‘interval’变量与列表中的每个索引进行比较,并将列表中的每个元素与临时变量进行比较。
- 再次使用’interval’变量进行向下整除。
- 定义列表,并在控制台上显示。
- 通过传递此列表及其长度来调用方法。
- 在控制台上显示输出。