大家帮忙想想节省空间的奇偶重排的算法
#include <iostream>#include <bitset>
using namespace std;
#define M 4
#define N (1<<M)
int main()
{
int a[N],b[N];
int i ;
for (i=0;i<N;i++) a[i] = i;
for (i=0;i<N/2;i++) { b[i] = 2*i;b[N/2+i] = 2*i+1;}
// for (i=0;i<N;i++) cout<<bitset<M>(b[i])<<"\t";
cout<<"\n";
}
大家,帮忙想想,对于上面的初始值A为自然顺序的值,经过变化后,实现像B中这样顺序的格式存放,而尽量减少开辟中间临时变量空间,应该怎么实现呢 ?
也就是用这样的接口函数 void change(int a[],int N) 变化,怎么实现呢 ??