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”变量执行地板除法。
  • 定义列表,并在控制台上显示。
  • 通过传递此列表及其长度来调用该方法。
  • 在控制台上显示输出。

更新于: 2021年3月12日

844 次查看

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告