54 lines
960 B
C++
54 lines
960 B
C++
|
/*
|
||
|
Description: A program to check if array is sorted or not using recursion
|
||
|
|
||
|
Approach: To compare last (n-1) element with the second last (n-2) element.
|
||
|
And decrementing the value of n at each recursive call, so that
|
||
|
we can search the entire array.
|
||
|
|
||
|
Time complexity: O(n)
|
||
|
*/
|
||
|
|
||
|
#include <iostream>
|
||
|
using namespace std;
|
||
|
|
||
|
//function starts
|
||
|
bool sorted(int arr[], int n)
|
||
|
{
|
||
|
//base case
|
||
|
if (n == 1 || n == 0)
|
||
|
{
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
if (arr[n - 1] > arr[n - 2])
|
||
|
{
|
||
|
//recursive function call
|
||
|
return sorted(arr, n - 1);
|
||
|
}
|
||
|
//if the element at (n-1) index is not greater than (n-2) element
|
||
|
//return false directly, which means array is not sorted
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
//main starts
|
||
|
int main()
|
||
|
{
|
||
|
int arr[] = {8, 2, 3, 4, 5, 6};
|
||
|
int n = sizeof(arr) / sizeof(arr[0]);
|
||
|
cout << sorted(arr, n);
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
Sample Input:
|
||
|
arr=[8, 2, 3, 4, 5, 6]
|
||
|
n=6
|
||
|
|
||
|
Output: 0
|
||
|
|
||
|
Sample Input:
|
||
|
arr=[1,2,3]
|
||
|
n=3
|
||
|
|
||
|
Output: 1
|
||
|
*/
|