Python 我实现的合并排序不起作用
我一直在python中实现合并排序,没有创建额外的变量来减少空间复杂性。这是我的尝试 我的基本合并排序逻辑如下所示,它由两个函数组成:-Python 我实现的合并排序不起作用,python,python-3.x,sorting,mergesort,Python,Python 3.x,Sorting,Mergesort,我一直在python中实现合并排序,没有创建额外的变量来减少空间复杂性。这是我的尝试 我的基本合并排序逻辑如下所示,它由两个函数组成:- 合并排序 合并 其代码如下所示:- def mergeSort(A, start_index, end_index): if ((len(A)) > 1): middle = math.floor((start_index + end_index) / 2) mergeSort(A[start_index:midd
def mergeSort(A, start_index, end_index):
if ((len(A)) > 1):
middle = math.floor((start_index + end_index) / 2)
mergeSort(A[start_index:middle], start_index, middle)
mergeSort(A[middle:end_index], middle, end_index)
merge(A[start_index:middle], A[middle: end_index], A)
#Create a new empty list for array to merge
我的合并逻辑如下所示:-
def merge(U, V, A):
m = len(U) - 1
n = len(V) - 1
U.append(inf)
V.append(inf)
i = j = k = 0
while(k <= (m + n + 1)):
if(U[i] < V[j]):
A[k] = U[i]
i += 1
else:
A[k] = V[j]
j += 1
k += 1
def合并(U、V、A):
m=len(U)-1
n=len(V)-1
U.1(inf)
V.append(inf)
i=j=k=0
虽然(k我不允许评论,但您应该在代码的第一个函数中添加mergeSort
If (start_index < end_index) :
If(开始索引<结束索引):