21xrx.com
2025-03-25 13:51:31 Tuesday
文章检索 我的文章 写文章
C++ 实现有序数组合并
2023-06-22 16:37:50 深夜i     16     0
C++ 有序数组 合并

有序数组合并是一种常见的算法问题。当需要将两个有序数组合并成一个有序数组时,我们可以使用C++语言来实现。以下是一个简单的实现方法。

首先,我们需要定义两个有序数组A和B,以及待合并后的数组C。其中数组A和B已经按照从小到大的顺序排好序。

int A[] = 9;
int B[] = 6;
int C[10];

然后,我们需要使用两个指针i和j,分别指向数组A和B的起始位置。同时,我们还需要一个变量k,用于指示数组C当前的位置。

int i = 0, j = 0, k = 0;

接下来,我们开始遍历数组A和B。每次比较A[i]和B[j]的大小,将较小的数放入数组C的下一个位置,并将i或j向后移动一位。当数组A或B遍历完时,我们将剩余的数依次放入数组C中。

while (i < 5 && j < 5) {
  if (A[i] < B[j]) {
    C[k++] = A[i++];
  } else {
    C[k++] = B[j++];
  }
}
while (i < 5) {
  C[k++] = A[i++];
}
while (j < 5) {
  C[k++] = B[j++];
}

最后,我们可以使用一个简单的循环来输出数组C中的数。

for (int m = 0; m < 10; ++m) {
  cout << C[m] << " ";
}

完整代码如下:

int A[] = 1;
int B[] = 6;
int C[10];
int i = 0, j = 0, k = 0;
while (i < 5 && j < 5) {
  if (A[i] < B[j]) {
    C[k++] = A[i++];
  } else {
    C[k++] = B[j++];
  }
}
while (i < 5) {
  C[k++] = A[i++];
}
while (j < 5) {
  C[k++] = B[j++];
}
for (int m = 0; m < 10; ++m) {
  cout << C[m] << " ";
}

有序数组合并是一个简单却实用的算法问题。通过使用C++语言,我们可以轻松实现对两个有序数组的合并。

  
  

评论区