def merge_alternative(self, array, low, mid, high):
left = np.copy(array[low: mid + 1])
right = np.copy(array[mid + 1: high + 1])
i, j, k = 0, 0, low
while i < len(left) and j < len(right):
self.count += 1
if left[i] < right[j]:
array[k] = left[i]
i += 1
else:
array[k] = right[j]
j += 1
k += 1
if self.visualization:
self.hist_array = np.vstack((self.hist_array, array))
while i < len(left):
array[k] = left[i]
i += 1
k += 1
while j < len(right):
array[k] = right[j]
j += 1
k += 1
评论列表
文章目录