def shellSort(alist): sublistcount = len(alist)//2 while sublistcount>0: for startposition in range(sublistcount): gapInsertionSort(alist,startposition,sublistcount) print("After increments of size",sublistcount"This list is",alist) sublistcount=sublistcount//2 def gapInsertionSort(alist,start,gap): for i in range(start+gap,len(alist),gap): currentvalue = alist[i] position = i while position>=gap and alist[position-gap]>currentvalue: alist[position]=alist[position-gap] position=position-gap alist=[position] =currentvalue修改代码
时间: 2023-12-22 20:05:54 浏览: 28
抱歉,这段代码有一些错误,我帮你修改一下:
```python
def shellSort(alist):
sublistcount = len(alist)//2
while sublistcount > 0:
for startposition in range(sublistcount):
gapInsertionSort(alist, startposition, sublistcount)
print("After increments of size", sublistcount, "This list is", alist)
sublistcount = sublistcount//2
def gapInsertionSort(alist, start, gap):
for i in range(start+gap, len(alist), gap):
currentvalue = alist[i]
position = i
while position >= gap and alist[position-gap] > currentvalue:
alist[position] = alist[position-gap]
position = position - gap
alist[position] = currentvalue
```
注意到其中的错误有:
1. 第 9 行缺少一个逗号,应该是 `print("After increments of size", sublistcount, "This list is", alist)`。
2. 第 14 行的 `alist=[position]`,应该改为 `alist[position]`。
希望这次修改可以帮到你。