写一段python代码,设A和B都是从小到大已排好序的n个不等的整数构成的数组(即A和B数组等长)如果把A与B合并后的数组记作C,设计一个算法找出C的中位数.
时间: 2024-11-15 20:31:17 浏览: 1
python 有一个已经排好序的数组 现输入一个数,要求按原来的规律将它插入数组中 (示例)
5星 · 资源好评率100%
当然,这里有一个简单的Python代码片段来解决这个问题。首先,我们需要合并两个有序数组`A`和`B`,然后找到合并数组`C`的中位数。由于数组已经排序,我们可以利用这个特性来优化查找过程。
```python
def find_median_sorted_arrays(A, B):
# 合并两个数组
C = sorted(A + B)
# 计算总长度
n = len(C)
# 如果数组长度是偶数
if n % 2 == 0:
# 中位数是中间两个数的平均值
median = (C[n // 2] + C[n // 2 - 1]) / 2
else:
# 中位数是中间的那个数
median = C[n // 2]
return median
# 示例:
A = [1, 3]
B = [2]
median = find_median_sorted_arrays(A, B)
print("合并数组C的中位数:", median)
```
在这个例子中,函数`find_median_sorted_arrays`接受两个已排序的数组作为输入,合并它们,然后根据数组长度是奇数还是偶数来计算中位数。最后返回结果。
阅读全文