21xrx.com
2024-12-22 22:28:17 Sunday
登录
文章检索 我的文章 写文章
C++实现合并并排序两个数组为一个数组
2023-07-05 06:19:23 深夜i     --     --
C++ 合并 排序 数组

C++语言是一种高效、快速的编程语言,在实现数据结构和算法方面表现出了很大的优势。其中,合并并排序算法是很常见的一种算法,它可以将两个有序数组合并为一个有序数组。本文将介绍使用C++语言实现合并并排序两个数组为一个数组。

1. 创建两个有序数组

首先,我们需要创建两个有序数组list1和list2,它们分别包含一些数字元素,可以按照从小到大的顺序排列。

int list1[] = 7;

int list2[] = 4;

2. 定义合并并排序函数

接下来,我们需要定义一个函数mergeSort,用于将两个有序数组合并为一个有序数组。该函数的参数包括两个数组和两个数组的长度。

void mergeSort(int list1[], int len1, int list2[], int len2) {

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

  int result[100];  // 定义一个空数组,用于存储合并后的结果

  //将两个有序数组合并到result数组中

  while (i < len1 && j < len2) {

   if (list1[i] < list2[j]) {

     result[k++] = list1[i++];

   } else {

     result[k++] = list2[j++];

   }

  }

  // 将其中一个数组中的剩余元素放入result数组

  while (i < len1) {

   result[k++] = list1[i++];

  }

  while (j < len2) {

   result[k++] = list2[j++];

  }

  // 将result数组中的元素复制回list1数组中

  for (int i = 0; i < k; i++) {

   list1[i] = result[i];

  }

}

3. 调用合并并排序函数

在main函数中,我们可以调用mergeSort函数,将两个有序数组list1和list2合并为一个有序数组,并输出结果。

int main() {

  int len1 = sizeof(list1) / sizeof(list1[0]);

  int len2 = sizeof(list2) / sizeof(list2[0]);

  mergeSort(list1, len1, list2, len2);

  for (int i = 0; i < len1 + len2; i++) {

   cout << list1[i] << " ";

  }

  return 0;

}

通过上述步骤,我们就可以使用C++语言实现合并并排序两个数组为一个数组了。在这个过程中,我们可以看到C++语言的高效和简洁,加上清晰的代码结构,让我们更好地理解算法思路。

  
  

评论区

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