Pythonでマージソートを実装しようとしています
#!/usr/bin/python
import math
def merge_sort(unsorted):
if(len(unsorted)<2):
return unsorted
middle = int(math.floor(len(unsorted)/2))
left = merge_sort(unsorted[0:middle])
right = merge_sort(unsorted[middle:])
return merge(left, right)
def merge(left, right):
results = []
while (len(left) > 0 and len(right) > 0 ):
if(left[0] < right[0]):
results.append(left.pop(0) )
else:
results.append( right.pop(0))
if (len(left) > 0):
results.append(left)
if (len(right) > 0):
results.append(right)
return results
print merge_sort(list('7123'))
ただし、私の結果は[['1'], ['2'], ['3'], [['7']]]
ではなく次のようになり['7', '1', '2', '3']
ます。
私の構文のエラーは何ですか?