Python 程序实现希尔排序
pythonserver side programmingprogramming更新于 2024/1/27 12:54:00
当需要实现希尔排序时,需要定义一个函数,该函数以列表和列表的长度作为参数。此列表按特定数量的元素排序,其中元素数量为最大值。此过程一直进行到元素数量具有最小值为止。
对列表中的所有子列表执行此操作,并对所有这些子列表进行排序。
列表可用于存储异构值(即任何数据类型的数据,如整数、浮点数、字符串等)。
下面是相同的演示 −
示例
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 ("\n执行 Shell 排序后的列表是:") print(my_list)
输出
排序前的列表是: [45, 31, 62, 12, 89, 5, 9, 8] 执行 Shell 排序后的列表是: [5, 8, 9, 12, 31, 45, 62, 89]
解释
- 定义了一个名为 'shell_sort' 的方法,该方法以列表和列表长度为参数。
- 使用 '//' 位运算符定义 'interval' 变量。
- 它执行向下取整除法。
- 它将值向下舍入为最接近的整数。
- 迭代列表,并创建一个临时变量。
- 将 'interval' 变量与列表的每个索引进行比较,并将列表中的每个元素与临时变量进行比较。
- 'interval'变量再次用于执行向下除法。
- 列表已定义,并显示在控制台上。
- 通过传递此列表及其长度来调用该方法。
- 输出显示在控制台上。