gpt4 book ai didi

python - 插入排序 Python

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:37:58 26 4
gpt4 key购买 nike

我已经在 python 中实现了插入排序,并且想知道如何确定算法的复杂度。这是实现插入排序的低效方法吗?对我来说,这似乎是最易读的算法。

import random as rand
source = [3,1,0,10,20,2,1]
target = []
while len(source)!=0:
if len(target) ==0:
target.append(source[0])
source.pop(0)
element = source.pop(0)
if(element <= target[0]):
target.reverse()
target.append(element)
target.reverse()
elif element > target[len(target)-1]:
target.append(element)
else:
for i in range(0,len(target)-1):
if element >= target[i] and element <= target[i+1]:
target.insert(i+1,element)
break
print target

最佳答案

代替:

target.reverse()
target.append(element)
target.reverse()

尝试:

target.insert(0, element)

此外,也许使用 for 循环而不是 while 循环来避免 source.pop()?:

for value in source:
...

在最后的 else block 中,if 测试的第一部分是多余的:

else:
for i in range(0,len(target)-1):
if element >= target[i] and element <= target[i+1]:
target.insert(i+1,element)
break

由于列表已经排序,一旦您发现一个元素大于您要插入的元素,您就找到了插入位置。

关于python - 插入排序 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15234129/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com