实现Shell排序的Python程序!
当需要实现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 ("排序前的列表是:") print(my_list) shell_sort(my_list, list_len) print ("\nThe list after performing shell sorting is :") print(my_list)输出结果
排序前的列表是: [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'变量再次用于执行楼层划分。
该列表已定义,并显示在控制台上。
通过传递此列表及其长度来调用该方法。
输出显示在控制台上。