Program to check if an array is sorted or not (Iterative and Recursive)

Given an array of size n, write a program to check if it is sorted in ascending order or not. Equal values are allowed in array and two consecutive equal values are considered sorted.

Examples:

Input : 20 21 45 89 89 90
Output : Yes

Input : 20 20 45 89 89 90
Output : Yes

Input : 20 20 78 98 99 97
Output : No

Recursive approach:

The basic idea for recursive approach:

1: If size of array is zero or one, return true.
2: Check last two elements of array, if they are
   sorted, perform a recursive call with n-1
   else, return false.
If all the elements will be found sorted, n will
eventually fall to one, satisfying Step 1.

Below is the implementation using recursion:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// Recursive approach to check if an
// Array is sorted or not
#include <bits/stdc++.h>
using namespace std;
  
// Function that returns 0 if a pair
// is found unsorted
int arraySortedOrNot(int arr[], int n)
{
    // Array has one or no element or the
    // rest are already checked and approved.
    if (n == 1 || n == 0)
        return 1;
  
    // Unsorted pair found (Equal values allowed)
    if (arr[n - 1] < arr[n - 2])
        return 0;
  
    // Last pair was sorted
    // Keep on checking
    return arraySortedOrNot(arr, n - 1);
}
  
// Driver code
int main()
{
    int arr[] = { 20, 23, 23, 45, 78, 88 };
    int n = sizeof(arr) / sizeof(arr[0]);
    if (arraySortedOrNot(arr, n))
        cout << "Yes\n";
    else
        cout << "No\n";
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Recursive approach to check if an
// Array is sorted or not
  
class CkeckSorted {
    // Function that returns 0 if a pair
    // is found unsorted
    static int arraySortedOrNot(int arr[], int n)
    {
        // Array has one or no element or the
        // rest are already checked and approved.
        if (n == 1 || n == 0)
            return 1;
  
        // Unsorted pair found (Equal values allowed)
        if (arr[n - 1] < arr[n - 2])
            return 0;
  
        // Last pair was sorted
        // Keep on checking
        return arraySortedOrNot(arr, n - 1);
    }
  
    // main function
    public static void main(String[] args)
    {
        int arr[] = { 20, 23, 23, 45, 78, 88 };
        int n = arr.length;
        if (arraySortedOrNot(arr, n) != 0)
            System.out.println("Yes");
        else
            System.out.println("No");
    }
}

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Recursive approach to check if an
# Array is sorted or not
  
# Function that returns 0 if a pair
# is found unsorted
def arraySortedOrNot(arr):
      
    # Calculating length
    n = len(arr)
      
    # Array has one or no element or the
    # rest are already checked and approved.
    if n == 1 or n == 0:
        return True
          
    # Recursion applied till last element
    return arr[0]<= arr[1] and arraySortedOrNot(arr[1:])
  
  
arr = [20, 23, 23, 45, 78, 88]
  
# Displaying result
if arraySortedOrNot(arr): print("Yes")
else: print("No"

chevron_right