The Gateway to Computer Science Excellence
+9 votes
399 views

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. Sorted in descending order
  3. Left unaltered
  4. Sorted in ascending order
in Algorithms by
edited by | 399 views
0
@kenzou, It would be better to shift the "endfor" stmt to align with "for".  May get confused as break in the pseudocode.
+1
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.

2 Answers

+11 votes
Best answer
Answer is $B$. Sorted in descending order ( selection sorting algorithm is used ).
by
edited by
+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
by

Related questions

Quick search syntax
tags tag:apple
author user:martin
title title:apple
content content:apple
exclude -tag:apple
force match +apple
views views:100
score score:10
answers answers:2
is accepted isaccepted:true
is closed isclosed:true
52,375 questions
60,574 answers
201,979 comments
95,388 users