Microsoft Interview Question
Software Engineer / DevelopersCountry: United States
Interview Type: In-Person
int main()
{
int array[100], n, c, d, swap;
printf("Enter number of elements\n");
scanf("%d", &n);
printf("Enter %d integers\n", n);
for (c = 0; c < n; c++)
scanf("%d", &array[c]);
for (c = 0 ; c < ( n - 1 ); c++)
{
for (d = 0 ; d < n - c - 1; d++)
{
if (array[d] > array[d+1]) /* For decreasing order use < */
{
swap = array[d];
array[d] = array[d+1];
array[d+1] = swap;
}
}
}
printf("Sorted list in ascending order:\n");
for ( c = 0 ; c < n ; c++ )
printf("%d\n", array[c]);
return 0;
}
I think, the question was about to find a sorting method which can sort items having non-trivial comparison method. Thats why question says that "tems can be compared with each others." Hence any sorting technique can be used with the tweak that now instead of assuming the trivial comparison (by way of > , < ), the sorting method must take a function (or function pointer) which does the comparison on the items being sorted.
- Pavi April 01, 2013