edited by
1,137 views
9 votes
9 votes

The below question is based on the following program.

procedure mystery (A : array [1..100] of int)
    int i,j,position,tmp;
    begin
        for j := 1 to 100 do
            position := j;
            for i := j to 100 do
                if (A[i] > A[position]) then
                    position := i;
                endfor
            tmp := A[j];
            A[j] := A[position];
            A[position] := tmp;
        endfor
end

When the procedure terminates, the array A has been:

  1. Reversed
  2. Left unaltered
  3. Sorted in descending order
  4. Sorted in ascending order
edited by

3 Answers

Best answer
12 votes
12 votes
Answer is $B$. Sorted in descending order ( selection sorting algorithm is used ).
edited by
2 votes
2 votes
void selectionSort(int arr[], int n)
{
    int i, j, min_idx;
 
    // One by one move boundary of unsorted subarray
    for (i = 0; i < n-1; i++)
    {
        // Find the minimum element in unsorted array
        min_idx = i;
        for (j = i+1; j < n; j++)
          if (arr[j] < arr[min_idx])
            min_idx = j;
 
        // Swap the found minimum element with the first element
        swap(&arr[min_idx], &arr[i]);
    }
}
 
 
 
Selection sort arranges elements in descending order.
Answer : B

Related questions

32 votes
32 votes
5 answers
2
go_editor asked May 23, 2016
6,779 views
You have $n$ lists, each consisting of $m$ integers sorted in ascending order. Merging these lists into a single sorted list will take time:$O(nm \log m)$$O(mn \log n)$...