编程实现两个有序数组的合并,合并后的数据放在第三个数组中,并保持其有序性。
时间: 2023-04-26 17:03:15 浏览: 93
合并有序数组的实现(java与C语言)
5星 · 资源好评率100%
可以使用归并排序的思想来实现两个有序数组的合并。具体步骤如下:
1. 定义三个指针,分别指向两个有序数组的起始位置和第三个数组的起始位置。
2. 比较两个有序数组的当前元素大小,将较小的元素放入第三个数组中,并将指向该元素的指针向后移动一位。
3. 重复步骤2,直到其中一个有序数组的元素全部放入第三个数组中。
4. 将另一个有序数组中剩余的元素依次放入第三个数组中。
5. 最后得到的第三个数组即为合并后的有序数组。
代码实现如下:
```python
def merge_sorted_arrays(arr1, arr2):
i, j, k = 0, 0, 0
n1, n2 = len(arr1), len(arr2)
arr3 = [0] * (n1 + n2)
while i < n1 and j < n2:
if arr1[i] < arr2[j]:
arr3[k] = arr1[i]
i += 1
else:
arr3[k] = arr2[j]
j += 1
k += 1
while i < n1:
arr3[k] = arr1[i]
i += 1
k += 1
while j < n2:
arr3[k] = arr2[j]
j += 1
k += 1
return arr3
```
其中,arr1和arr2为两个有序数组,arr3为合并后的有序数组。
阅读全文