#include<stdio.h>
int main(void)
{
int array[8]={10,124,22,334,434,52,623,75},i,j,k,N=8;/*i为顺序下标j为倒序下标*/
/*array[0]总是原封不动,而array[1]总是和a[N/2]对换,所以可以设初始值i=1,j=N/2*/
j=N>>1;
for(i=1;i<N-1;i++)
{
if(i<j)/*交换数组数据,这里因为数据都是整数,可用“亦或”实现交换*/
{
array[i]=array[i]^array[j];
array[j]=array[i]^array[j];
array[i]=array[i]^array[j];
}
k=N>>1;
while(k<=j)
{
j-=k;
k>>=1;
}
j+=k;
}
for(i=0;i<N;i++)
printf("%d ",array[i]);
printf("\n");
getchar();
return 0;
}