Interview Questions

220. Given a set of positive and negative integers group all the positive integers on ..

Microsoft Interview Questions and Answers


(Continued from previous question...)

220. Given a set of positive and negative integers group all the positive integers on ..

Question:
Given a set of positive and negative integers group all the positive integers on one side and negative integers on one side... numbers should be in the same order they appear....


maybe an answer:


public static int[] OrderNumbers(int []arr)
{
int len=arr.Length;
int totalNegativNumbers=0;
int []arrnew=new int[len];
for(int i=0;i<len;i++)
{
if(arr[i]<0)
totalNegativNumbers++;
}
int negCounter=0;
int posCounter=totalNegativNumbers;
for(int i=0;i<len;i++)
{
if(arr[i]<0)
arrnew[negCounter++]=arr[i];

else
arrnew[posCounter++]=arr[i];

}
return arrnew;
}



maybe an answer2:



#include<stdio.h>
#include<malloc.h>

void modifiedMergeOperation(int* input, int left, int mid, int right)
{
//if(right == left) return;

int* temp = (int*)malloc(((right-left)+1)*sizeof(int)); int i = 0, j = 0;

int index = 0;
for(i = left, j = mid+1; i <= mid && j <= right;index++)
{
//Modified step. Choose the negative numbers first
if(input[i] < 0)
{
temp[index] = input[i];
i++;
}
//Modified step. Choose the negative numbers first else if(input[j] < 0)
{
temp[index] = input[j];
j++;
}
else
{
temp[index] = input[i];
i++;
}
}
while(i <= mid){ temp[index] = input[i]; i++; index++;}
while(j <= right){ temp[index] = input[j]; j++; index++;}

for(i = left; i <= right; i++)
{
input[i] = temp[i - left];
}
free(temp);
}

void splitOperation(int* input, int left, int right)
{
if(left < right)
{
splitOperation(input, left, (right+left)/2);
splitOperation(input, (right+left)/2 + 1, right);
}

modifiedMergeOperation(input, left, (right+left)/2, right); }

int main()
{
int input[] = {3, -6, 8, 3, 1, -56, -8, 90, 45, 2, 86, -12 ,8, 34, 1, -83, 26, -8};
splitOperation(input, 0, 17);

for(int i = 0; i < 18; i++) printf("%d ", input[i]);
}

(Continued on next question...)

Other Interview Questions