当前位置:网站首页 > C++编程 > 正文

合并数组c语言(c++合并数组)



 1 #include <stdafx.h>  2 #include "iostream"  3 #include "time.h"  4 #include "stdlib.h"  5 using namespace std;  6 //合并函数  7 void Merge(int *_Array, int p, int q, int r) {// p:第0个;r:第n-1个数,q:第(r + p) / 2个数   8 int len1 = q - p + 1;  9 int len2 = r - q; 10 int *L = new int[len1 + 1];//用动态数组储存左边的数  11 int *R = new int[len2 + 1];//用动态数组储存右边的数  12 13 for (int i = 0; i < len1; i++) {// 把Array数组左边的数放入L数组  14 L[i] = _Array[p + i]; 15  } 16 17 for (int j = 0; j < len2; j++) {// 把Array数组右边的数放入R数组  18 R[j] = _Array[q + 1 + j]; 19  } 20 L[len1]=R[len2]=INT_MAX; //定义无穷大  21 int i = 0, j = 0; 22 for (int k = p; k <= r; k++) { 23 if (L[i] < R[j]) {//小的放左边,大的放右边  24 _Array[k] = L[i]; 25 i++; 26  } 27 else { 28 _Array[k] = R[j]; 29 j++; 30  } 31  } 32 } 33 // 归并排序 34 void MergeSort(int _Array[], int p, int r) { 35 if (p < r) {//p:第0个;r:第n-1个数。数组至少要有两个数据  36 int q; 37 q = (r + p) / 2;//拆分两组  38 MergeSort(_Array , p , q);//拆分第0个到第 (r + p) / 2个 ,即拆分左半部分  39 MergeSort(_Array , q+1 , r);//拆分第(r + p) / 2个到第r个 ,即拆分右半部分  40 Merge(_Array , p , q , r);//调用合并函数,从第0个到第n-1个排好  41  } 42 } 43 44 int main() { 45 int n; 46 cout << "输入产生的数组个数:"; 47 cin >> n; 48 cout << endl; 49 int *Array = new int[n]; 50 cout << "产生的随机数组为:"; 51 srand((unsigned)time(0)); 52 53 for (int i = 0; i < n; i++) { 54 Array[i] = (rand()%(100-0+1))+0; 55 //cin>>; 56 cout<<Array[i]<<" "; 57  } 58 cout<<endl; 59 60 MergeSort(Array,0,n-1); 61 62 cout << "排序后的数组为:"; 63 for(int j = 0;j<n;j++){ 64 cout<<Array[j]<<" "; 65  } 66 // int a; 67 // cin>>a; 68 return 0 ; 69 }
到此这篇合并数组c语言(c++合并数组)的文章就 介绍到这了,更多相关内容请继续浏览下面的相关 推荐文章,希望大家都能在 编程的领域有一番成就!

版权声明


相关文章:

  • plc编程入门基础知识(plc编程入门基础知识教程)2025-07-26 16:09:10
  • msvcp140.dll丢失的解决方法没有网可解决吗(msvcp140.dll丢失怎样修复)2025-07-26 16:09:10
  • cnn什么意思骂人(我cnn是什么意思)2025-07-26 16:09:10
  • apc与阿司匹林的区别(阿司匹林与ppi共识指南)2025-07-26 16:09:10
  • 解决tomcat乱码问题(tomcate乱码)2025-07-26 16:09:10
  • codependent人格(empath人格)2025-07-26 16:09:10
  • c++单向链表冒泡(单链表的冒泡法c语言)2025-07-26 16:09:10
  • pointnet和pointnet++区别(pointnet++网络)2025-07-26 16:09:10
  • 解决tomcat乱码(解决tomcat乱码问题)2025-07-26 16:09:10
  • ip地址换算mac地址(ip地址与mac地址的转换协议)2025-07-26 16:09:10
  • 全屏图片