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++

 `// Recursive approach to check if an ` `// Array is sorted or not ` `#include ` `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 "````; ` `    ``else` `        ``cout << ````"No "````; ` `} `

/div>

Java

 `// 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"``); ` `    ``} ` `} `

Python3

 `# 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"``)  `