knuhepbg
BAN USER3 -1 -2 2 2 3 2 -6 2 3 -8 0 2
*
3 -1 -2 2 2 3 2 -6 2 3 -8 0 2
*
3 -1 -2 2 2 3 2 -6 2 3 -8 0 2
*
3 -1 2 -2 2 3 2 -6 2 3 -8 0 2
*
3 2 -1 -2 2 3 2 -6 2 3 -8 0 2
*
3 2 -1 -2 2 3 2 -6 2 3 -8 0 2
*
3 2 -1 -2 2 3 2 -6 2 3 -8 0 2
*
3 2 -1 -2 2 3 2 -6 2 3 -8 0 2
*
3 2 -1 2 -2 3 2 -6 2 3 -8 0 2
*
3 2 2 -1 -2 3 2 -6 2 3 -8 0 2
*
3 2 2 -1 -2 3 2 -6 2 3 -8 0 2
*
3 2 2 -1 -2 3 2 -6 2 3 -8 0 2
*
3 2 2 -1 -2 3 2 -6 2 3 -8 0 2
*
3 2 2 -1 3 -2 2 -6 2 3 -8 0 2
*
3 2 2 3 -1 -2 2 -6 2 3 -8 0 2
*
3 2 2 3 -1 -2 2 -6 2 3 -8 0 2
*
3 2 2 3 -1 -2 2 -6 2 3 -8 0 2
*
3 2 2 3 -1 -2 2 -6 2 3 -8 0 2
*
3 2 2 3 -1 2 -2 -6 2 3 -8 0 2
*
3 2 2 3 2 -1 -2 -6 2 3 -8 0 2
*
3 2 2 3 2 -1 -2 -6 2 3 -8 0 2
*
3 2 2 3 2 -1 -2 -6 2 3 -8 0 2
*
3 2 2 3 2 -1 -2 -6 2 3 -8 0 2
*
3 2 2 3 2 -1 -2 -6 2 3 -8 0 2
*
3 2 2 3 2 -1 -2 2 -6 3 -8 0 2
*
3 2 2 3 2 -1 2 -2 -6 3 -8 0 2
*
3 2 2 3 2 2 -1 -2 -6 3 -8 0 2
*
3 2 2 3 2 2 -1 -2 -6 3 -8 0 2
*
3 2 2 3 2 2 -1 -2 -6 3 -8 0 2
*
3 2 2 3 2 2 -1 -2 -6 3 -8 0 2
*
3 2 2 3 2 2 -1 -2 -6 3 -8 0 2
*
3 2 2 3 2 2 -1 -2 3 -6 -8 0 2
*
3 2 2 3 2 2 -1 3 -2 -6 -8 0 2
*
3 2 2 3 2 2 3 -1 -2 -6 -8 0 2
*
3 2 2 3 2 2 3 -1 -2 -6 -8 0 2
*
3 2 2 3 2 2 3 -1 -2 -6 -8 0 2
*
3 2 2 3 2 2 3 -1 -2 -6 -8 0 2
*
3 2 2 3 2 2 3 -1 -2 -6 -8 0 2
*
3 2 2 3 2 2 3 -1 -2 -6 -8 0 2
*
3 2 2 3 2 2 3 -1 -2 -6 0 -8 2
*
3 2 2 3 2 2 3 -1 -2 0 -6 -8 2
*
3 2 2 3 2 2 3 -1 0 -2 -6 -8 2
*
3 2 2 3 2 2 3 0 -1 -2 -6 -8 2
*
3 2 2 3 2 2 3 0 -1 -2 -6 -8 2
*
3 2 2 3 2 2 3 0 -1 -2 -6 -8 2
*
3 2 2 3 2 2 3 0 -1 -2 -6 -8 2
*
3 2 2 3 2 2 3 0 -1 -2 -6 -8 2
*
3 2 2 3 2 2 3 0 -1 -2 -6 -8 2
*
3 2 2 3 2 2 3 0 -1 -2 -6 2 -8
*
3 2 2 3 2 2 3 0 -1 -2 2 -6 -8
*
3 2 2 3 2 2 3 0 -1 2 -2 -6 -8
*
3 2 2 3 2 2 3 0 2 -1 -2 -6 -8
*
3 2 2 3 2 2 3 0 2 -1 -2 -6 -8
*
3 2 2 3 2 2 3 0 2 -1 -2 -6 -8
*
3 2 2 3 2 2 3 0 2 -1 -2 -6 -8
*
3 2 2 3 2 2 3 0 2 -1 -2 -6 -8
*
3 2 2 3 2 2 3 0 2 -1 -2 -6 -8
#include <stdio.h>
void printarray(int array[],int arraysize,int nCursor)
{
int i;
for(i=0;i<arraysize;i++)
printf("%3d ",array[i]);
printf("\n");
if(nCursor>=0)
{
for(i=0;i<nCursor;i++)
printf(" ",array[i]);
printf(" *\n");
}
}
main()
{
int array[] = {3,-1,-2,2,2,3,2,-6,2,3,-8,0,2};
int arraysize= sizeof(array)/sizeof(int);
int i;
for(i=1;i<arraysize;i++)
{
printarray(array,arraysize,i);
if(array[i-1]>=0 && array[i]>=0)
continue;
if(array[i-1] < 0 && array[i]>=0) //-2 , 2
{
int temp = array[i];
array[i]=array[i-1];
array[i-1]=temp;
i-=2; //Move the cursor back
}
}
printarray(array,arraysize,-1);
}
#include <stdio.h>
#include <string.h> //for memcpy
main()
{
int array[] = {3,-1,-2,2,2,3,2,-6,2,3,-8,0,2};
int arraysize= sizeof(array)/sizeof(int);
int i;
int num_of_minus=0;
for(i=0;i<arraysize-num_of_minus-1;i++) // repeat before the begining of minus number array
{
if(array[i]<0)
{
// Move current minus number at the end of array
int temp=array[i];
memcpy(array+i,array+i+1,sizeof(int)*(arraysize-i-1) );
array[arraysize-1]=temp;
i--; //Current number is overwritten, so check it again.
num_of_minus++;
}
}
printf("{");
for(i=0;i<arraysize-1;i++)
{
printf("%d,",array[i]);
}
printf("%d}\n",array[arraysize-1]);
}
I don't know what "single iteration" exactly means, but I don't believe there would be no other way which generates less iterations than this if we don't use memcpy...
- knuhepbg July 06, 2012