zoukankan      html  css  js  c++  java
  • c++有序列表的合并

     1 #include <iostream>
     2 using namespace std;
     3 void merge(int a[],int b[],int n,int c[])
     4 {
     5     int i=0,j=0,k=0;
     6     while(i<n && j<n)
     7     {
     8         while(a[i]<=b[j]&& i<n && j<n)   //注意这里和下面的相同
     9     {
    10         c[k++]=a[i++];     //将较小的数放入c中,然后k+1,i+1,之后返回循环判断条件是否成立,否则跳出循环执行下面的操作,将c的下一个赋值为b中的一个元素
    11     }
    12     while(a[i]>b[j] && i<n && j<n)  //注意把i<n && j<n这个条件重复加上,因为在执行 的时候i,j可能已经到达5了,再继续计算就出错了 
    13     {
    14         c[k++]=b[j++];
    15     }
    16     }
    17     while(i<n)
    18     {
    19         c[k++]=a[i++];
    20     }
    21     while(j<n)
    22     {
    23         c[k++]=b[j++];
    24     }
    25 }
    26 int main()
    27 {
    28     int n;
    29     cin>>n;
    30     int *a,*b,*c;
    31     a=new int [n];
    32     b=new int [n];
    33     c=new int [2*n];
    34     for(int i=0;i<n;i++)
    35     {
    36         cin>>a[i];
    37     }
    38     for(int i=0;i<n;i++)
    39     {
    40         cin>>b[i];
    41     }
    42     merge(a,b,n,c);
    43     for(int i=0;i<2*n;i++)
    44     {
    45         cout<<c[i]<<" ";
    46     }    
    47 }
  • 相关阅读:
    数据库查找
    关于购买功能的相关学习
    信息登记功能例子
    总结
    团队作业
    团队作业
    团队作业
    团队作业
    团队作业
    第一节:库的管理
  • 原文地址:https://www.cnblogs.com/chenhanwu/p/9785756.html
Copyright © 2011-2022 走看看