21xrx.com
2024-12-22 22:21:10 Sunday
登录
文章检索 我的文章 写文章
C++ 实现有序数组合并
2023-06-22 16:37:50 深夜i     --     --
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++语言,我们可以轻松实现对两个有序数组的合并。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复