一个随机数组问题

来源:百度知道 编辑:UC知道 时间:2024/09/20 12:29:17
三个数组A(2n),B(n),C(n),然后把A中的数放入B和C中,条件是在A中找出最相近的两个数(即差值最小)然后把大数放B数组里面小数放C数组里面
c++程序,最好不用stdio.h,要详细的源代码,着急啊。

你是要差值最小还是b、c数组里数的总和相差最小

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
enum { N = 6 };
int main() {
int ints[] = { 10, 20, 30, 5, 15, 22 };
int ar[N / 2], ai[N / 2];

vector<int> v(ints, ints + N);
vector<int>::iterator it;

make_heap(v.begin(), v.end());
sort_heap(v.begin(), v.end());

unsigned i, k = v.size();
for (i = 0; i < k; ++i) {
ar[i] = v[i];
++i;
}
for (i = 0; i < k; ++i) {
ai[i] = v[i + 1];
++i;
}
}

####################

to: 尚巾月生

好像不是,一开始我也那样写(你的意思其实就是“b、c数组里数的总和相差最小”),后来再看下题目他好像要求数里差值最小的,不太清楚LZ要求,就这样吧。。