2つのリストをマージし、ソートされたリストの合計を返す関数を作成しようとしています。2つのリストのPython挿入ソート
def insertionSort(alist,blist):
total = alist + blist
for index in range(1,len(total)):
currentvalue = total[index]
position = index
while position>0 and total[position-1]>currentvalue:
total[position]=total[position-1]
position = position-1
total[position]=currentvalue
print(total)
それは動作しますが、それは、出力として私を与えるこのような何か:
>>> insertionSort([9,8,7], [5,4,3])
[8, 9, 7, 5, 4, 3]
[8, 7, 9, 5, 4, 3]
[7, 8, 9, 5, 4, 3]
[7, 8, 5, 9, 4, 3]
[7, 5, 8, 9, 4, 3]
[5, 7, 8, 9, 4, 3]
[5, 7, 8, 4, 9, 3]
[5, 7, 4, 8, 9, 3]
[5, 4, 7, 8, 9, 3]
[4, 5, 7, 8, 9, 3]
[4, 5, 7, 8, 3, 9]
[4, 5, 7, 3, 8, 9]
[4, 5, 3, 7, 8, 9]
[4, 3, 5, 7, 8, 9]
[3, 4, 5, 7, 8, 9]
をしかし、私は唯一の最後の行(結果を)したいです。私に何ができる?
また、両方のリストがソートされていない場合は、この関数の複雑さが不思議です。これはo((alist+blist)^2)
ですか?
警告:私はlist.sort()
の使用方法を知っています。この質問は約this algoですが、2つのリストです。
あなたは( 'ソート' BIFの知っている) ''、右? – LarsVegas
@LarsVegas sure;) – Martin
多分あなたは質問を再フレーズする必要があります – LarsVegas