Last Updated: 13 Apr, 2022

Ninja In Interview

Easy
Asked in company
Morgan Stanley

Problem statement

Ninja is preparing for DSA interviews and in an interview, he was given an array of size ‘N’ and was asked to check if the array is sorted in ascending order or not.

Return 1 if the array is sorted, else return 0.

EXAMPLE:
Input: 'N' = 2, ‘ARR’ = [1, 2, 5, 6]

Output: 1

As we can see that ‘ARR’ is sorted in ascending order so the answer will be 1.
Input Format :
The first line will contain the integer 'T', denoting the number of test cases.

For each test case, the first line will contain ‘N’ the number of elements in array ‘ARR’ and the next line will contain all the elements of ‘ARR’.
Output format :
For each test case, print 1 of the array is sorted else print 0.
Note :
You don't need to print anything. It has already been taken care of. Just implement the given function.
Constraints :
1 <= 'T' <= 10
1 <= 'N' <= 10^3
1 <= ‘ARR[i]’ <= 10^9

Time Limit: 1 sec

Approaches

01 Approach

For each element except for the first, check if it is greater than or equal to the previous element. If it is then the array is sorted else not.
 

Algorithm :  
 

Bool isSortedRec( int ARR[], int I, int LAST, int N)`

//where ‘LAST’ is the last element, ‘ARR[]’ is the array and ‘I’ is a current index, and ‘N’ is array size:

  • If ‘I’ is greater than or equal to ‘N’ return true.
  • Check if current element of the array ‘ARR[i]’ is >= ‘LAST’:-
    • Return isSorted(ARR[I], ARR, I+1, N).
  • Else return false.
     

Bool isSorted(int ARR[], int N)

// where ‘ARR’ is the initial array and ‘N’ is the size of the array.

  • Returns isSortedRec(ARR, 0, -1, N).

02 Approach

For each element except for the first check if it is greater than or equal to the previous element.

 

Algorithm :  

 

  • Initialize a bool flag ‘F’ and assign it as 1.
  • For each element from 1 <= ‘I’ <= ‘N’:-
    • Check if ‘ARR[i]’>=’ARR[i-1]’ than do nothing.
    • Else set ‘F’ = 0.
  • Return flag value ‘F’.