Python 实现 Shell 排序程序
当需要实现 Shell 排序时,会定义一个函数,该函数以列表和列表长度作为参数。此列表会按特定数量的元素进行排序,其中元素数量为最大值。这会持续进行,直到元素数量具有最小值。
这会对列表中的所有子列表进行操作,并且所有这些子列表都已排序。
列表可用于存储异构值(即任何数据类型的数据,如整数、浮点数、字符串等)。
下面是相同内容的演示 -
示例
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 ("The list before sorting is :") print(my_list) shell_sort(my_list, list_len) print ("\nThe list after performing shell sorting is :") print(my_list)
输出
The list before sorting is : [45, 31, 62, 12, 89, 5, 9, 8] The list after performing shell sorting is : [5, 8, 9, 12, 31, 45, 62, 89]
解释
- 定义了一个名为“shell_sort”的方法,该方法将列表和列表长度作为参数。
- 使用“//”按位运算符定义“interval”变量。
- 它执行地板除法。
- 它将值四舍五入到最接近的整数。
- 迭代列表,并创建一个临时变量。
- 将“interval”变量与列表的每个索引进行比较,并将列表中的每个元素与临时变量进行比较。
- 再次使用“interval”变量执行地板除法。
- 定义列表,并在控制台上显示。
- 通过传递此列表及其长度来调用该方法。
- 在控制台上显示输出。
广告