-1
我已经构建从伪代码,并在Python脚本C代码希尔排序算法..无法返回排序的外壳列表
(我的工作,通过算法作为练习)
我似乎无法得到排序的列表被1至返回
当我打印(内)作为环的一部分,它确实将它们打印出来,以便1并结束..
我试图从功能
我G系数的响应返回内[[9]]
这是最后一次迭代..所以我知道它迭代,排序正确..
但是我不能让它返回排序列表
[1,2,3,4,5,6,7,8,9]
unsort_list = [4, 6, 3, 2, 1, 9, 7, 8, 5]
def shell(a):
"""
Step 1 − Initialize the value of h
Step 2 − Divide the list into smaller sub-list of equal interval h
Step 3 − Sort these sub-lists using insertion sort
Step 3 − Repeat until complete list is sorted
"""
interval_h = 1
i = 0
l = len(a)
elements = a
inner = []
outer = []
value_ins = []
print(l)
while interval_h <= l/3:
interval_h = interval_h * 3 + 1
while interval_h > 0:
outer = interval_h
for i in elements:
while outer < i:
outer += 1
value_ins = [outer]
inner = outer
while inner > interval_h - 1 and [inner - interval_h] >= value_ins:
inner = [inner - interval_h]
inner -= interval_h
inner = value_ins
interval_h = (interval_h - 1)
i += 1
return inner
sorted_list = [shell(unsort_list)]
print(sorted_list)
是什么程序** **目前回报?将此添加到您的帖子中。 – Adi219
在'while'外部'我'这一行是'它指的是''''''''''''''我在元素''中提到''interval_h'或'i'提到? – Adi219
可以在原地进行外壳排序而无需创建额外的列表。还要注意,你不能比较列表和整数(如'outer