in Algorithms edited by
1,118 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
in Algorithms edited by
1.1k views

2 Comments

@kenzou, It would be better to shift the "endfor" stmt to align with "for".  May get confused as break in the pseudocode.
0
0
This code is finding the position of max element in the unsorted part of the array and interchanging it with the first element in the unsorted part.
1
1

3 Answers

12 votes
12 votes
Best answer
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
0 votes
0 votes

Answer:

Related questions