用Python写一个分治法
时间: 2024-03-06 17:31:16 浏览: 78
python 实现 分治法 (Divide-and-conquer algorithm) 课程设计 代码
好的,可以为你提供一个 Python 实现的分治法算法。
def divide_conquer(nums):
# 递归终止条件
if len(nums) == 1:
return nums
# 划分为左右两部分
mid = len(nums) // 2
left = nums[:mid]
right = nums[mid:]
# 分别对左右两部分递归调用分治法函数
left_sorted = divide_conquer(left)
right_sorted = divide_conquer(right)
# 合并排序后的左右两部分
res = []
i, j = 0, 0
while i < len(left_sorted) and j < len(right_sorted):
if left_sorted[i] < right_sorted[j]:
res.append(left_sorted[i])
i += 1
else:
res.append(right_sorted[j])
j += 1
res += left_sorted[i:]
res += right_sorted[j:]
return res
# 测试
if __name__ == "__main__":
nums = [3, 2, 1, 5, 4, 6, 7, 8, 10, 9]
sorted_nums = divide_conquer(nums)
print(sorted_nums)
阅读全文