C语言排序两个一维数组,合并到一个一维数组中,仍然保持有序
时间: 2024-12-23 19:25:13 浏览: 1
C语言实现在数组A上有序合并数组B的方法
5星 · 资源好评率100%
在C语言中,将两个已排序的一维数组合并成一个新的有序数组,通常可以采用归并排序的思想。这里我们可以创建一个临时数组来存储合并过程中的结果。下面是基本步骤:
1. 初始化:首先确定新数组的大小,通常是两输入数组长度之和。然后初始化这个临时数组。
2. 比较和复制:从两个输入数组的起始位置开始,比较当前元素,将较小的那个放入临时数组,并将指针向后移动一位。重复这个过程直到其中一个数组遍历完。
3. 处理剩余部分:如果还有未处理的元素(即一个数组已经遍历完而另一个没有),将另一个数组剩余的部分直接复制到临时数组。
4. 结果数组:最后,临时数组就是合并后的有序数组。
以下是简单的伪代码实现:
```c
void merge_sorted_arrays(int arr1[], int arr2[], int len1, int len2, int result[]) {
int i = 0, j = 0, k = 0;
while (i < len1 && j < len2) {
if (arr1[i] <= arr2[j]) {
result[k++] = arr1[i++];
} else {
result[k++] = arr2[j++];
}
}
// 如果有剩余元素,直接复制
while (i < len1) {
result[k++] = arr1[i++];
}
while (j < len2) {
result[k++] = arr2[j++];
}
}
```
阅读全文