
获得徽章 0
赞了这篇沸点
#刷题交流#
打卡8,分治法的案例:归并排序(Merge Sort)
分解:将数组分为两半。
解决:递归地对每个子数组进行归并排序。
合并:将两个已排序的子数组合并成一个大的已排序数组。
function mergeSort(array):
if length(array) <= 1:
return array
mid = length(array) / 2
left = mergeSort(array[0:mid])
right = mergeSort(array[mid:end])
return merge(left, right)
function merge(left, right):
result = []
while left and right are not empty:
if left[0] <= right[0]:
result.append(left[0])
left.remove(0)
else:
result.append(right[0])
right.remove(0)
return result + left + right
打卡8,分治法的案例:归并排序(Merge Sort)
分解:将数组分为两半。
解决:递归地对每个子数组进行归并排序。
合并:将两个已排序的子数组合并成一个大的已排序数组。
function mergeSort(array):
if length(array) <= 1:
return array
mid = length(array) / 2
left = mergeSort(array[0:mid])
right = mergeSort(array[mid:end])
return merge(left, right)
function merge(left, right):
result = []
while left and right are not empty:
if left[0] <= right[0]:
result.append(left[0])
left.remove(0)
else:
result.append(right[0])
right.remove(0)
return result + left + right
展开
评论
2