筆試程序題專項----數組重排列

 

#include <stdio.h>
#include<stdlib.h>
#include<iostream>
#include<stack>
using namespace std;

void cir(int *a,int index,int len)
{
	int t=a[index];
	for(int i=0;i<len;i++)
	{
		a[index+i]=a[index+i+1];
	}
	a[index+len]=t;
}
int main()
{
    int n=1000;
    //int *a=(int*)malloc(sizeof(int)*(n+1));
    int *a = new int [n+1];
    for(int i=1;i<n+1;i++)
    {
    	a[i]=i;
    }
    int index=n-1,len=1;
    while(index>=1)
    {
    	if(index%2==0)
    	{
	        cir(a,index,len);
			index--;
			len++;	
	    }
    	index--;
    }

    for(int i=1;i<n+1;i++)
    {
    	cout<<a[i]<<" ";
    }
    delete []a;
    return 0;
}
 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章