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

相关文章