文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>回答网友的一个问题

回答网友的一个问题

时间:2011-03-05  来源:hailong

我的代码:

#include <iostream>
#include <algorithm>
using namespace std;
//检查b是否在数组a中
inline bool f1(int *a, int size_a,int b)
{
        if (b < a[0] || b > a[size_a-1])
                return 1;
        for (int j = 0; j < size_a; ++j)
        {
                if (a[j] == b)
                {
                        return 0;
                }
        }
        return 1;
}

void merge_array(int *a, int size_a,int *b, int size_b,int *c,int &merge_size)
{
  bool  flag = 1;//数组a大则为1
  int real_size = 0;
  if (size_a > size_b)
      sort(a,a+size_a);
  else
  {
      sort(b,b+size_b);
          flag = 0;
  }
  if (flag)
  {
          real_size = size_a;
          for (int i = 0; i < size_a; ++i)
          {
                  c[i] = a[i];
          }
      for (int i = 0; i < size_b;++i)
      {
                  if (f1(a,size_a,b[i]))
                  {
                          c[real_size++] = b[i];
                  }
      }
  } 
  else
  {
          real_size = size_b;
          for (int i = 0; i < size_b; ++i)
          {
                  c[i] = b[i];
          }
          for (int i = 0; i < size_a;++i)
          {
                  if (f1(b,size_b,a[i]))
                  {
                          c[real_size++] = a[i];
                  }
          }
  }
  merge_size = real_size;
}

int main()
{
        int a[] = {1,3,5,7,9}, b[] = {1,2,5,4,6};
        int size_a = sizeof(a)/sizeof(*a), size_b = sizeof(b)/sizeof(*b);
        int merge_size = size_a + size_b;
    int *c = new int[merge_size];
    merge_array(a,size_a,b,size_b,c,merge_size);
        for (int i = 0 ; i < merge_size; ++i)
        {
                cout << c[i]<< " ";
        }
}
貌似也是不怎么给力啊
相关阅读 更多 +
排行榜 更多 +
别惹神枪手安卓版

别惹神枪手安卓版

冒险解谜 下载
坦克战争世界

坦克战争世界

模拟经营 下载
丛林反击战

丛林反击战

飞行射击 下载