kishore25kumar
BAN USERAdd all the numbers in the array = r1.
calculate sum of n natural numbers using n*(n+1)/2 = r2
substract r1 from r2 you will get the result
void swap(int * input,int i,int j)
{
int temp = input[j];
input[j] = input[i];
input[i] = temp;
}
void sorting(int length, int *input)
{
int onePointer = 0;
int threePointer = length-1;
for(int i = 0; i <= threePointer; i++)
{
while(input[onePointer]==1)
{
i++;
onePointer++;
}
while(input[threePointer]==3)
{
threePointer--;
}
if(input[onePointer] == 3 && input[threePointer] == 1)
{
onePointer++;
threePointer--;
swap(input,i,threePointer);
}
else if(input[i] == 1)
{
swap(input,i,onePointer);
onePointer++;
}
else if(input[i] == 3)
{
swap(input,i,threePointer);
threePointer--;
i--;
}
}
}
your code works only if it is sorted? It fails when the array is not sorted
- kishore25kumar December 11, 2013