Check if an Array is Sorted
Last Updated :
13 May, 2025
Given an array of size n, the task is to check if it is sorted in ascending order or not. Equal values are allowed in an array and two consecutive equal values are considered sorted.
Examples:
Input: arr[] = [20, 21, 45, 89, 89, 90]
Output: Yes
Input: arr[] = [20, 20, 45, 89, 89, 90]
Output: Yes
Input: arr[] = [20, 20, 78, 98, 99, 97]
Output: No
Iterative approach - O(n) Time and O(1) Space
The idea is simple. We start traversing from the second element. For every element we check if it is smaller than or equal to previous element or not. At any point if we find previous element greater, we return false.
For example [10, 20, 30, 5, 6[
i = 1 : (10 <= 20), continue
i = 2 : (20 <= 30), continue
i = 3 : (30 > 5), return false.
C++
#include <bits/stdc++.h>
using namespace std;
// Function that returns true if vector is
// sorted in non-decreasing order.
bool isSorted(const vector<int>& arr)
{
// For an array to be sorted, every
// element must be greater than the
// previous element
for (int i = 1; i < arr.size(); i++)
if (arr[i - 1] > arr[i])
return false;
return true;
}
// Driver code
int main()
{
vector<int> arr = { 20, 23, 23, 45, 78, 88 };
cout << (isSorted(arr) ? "Yes\n" : "No\n");
return 0;
}
C
// C program to check if an
// Array is sorted or not
#include <stdio.h>
// Function that returns true if array is
// sorted in non-decreasing order.
int arraySortedOrNot(int arr[], int n)
{
// Array has one or no element
if (n == 0 || n == 1)
return 1;
for (int i = 1; i < n; i++) {
// Unsorted pair found
if (arr[i - 1] > arr[i])
return 0;
}
// No unsorted pair found
return 1;
}
// Driver code
int main()
{
int arr[] = { 20, 23, 23, 45, 78, 88 };
int n = sizeof(arr) / sizeof(arr[0]);
if (arraySortedOrNot(arr, n))
printf("Yes\n");
else
printf("No\n");
return 0;
}
Java
// Recursive approach to check if an
// Array is sorted or not
class GFG {
// Function that returns true if array is
// sorted in non-decreasing order.
static boolean arraySortedOrNot(int arr[], int n)
{
// Array has one or no element
if (n == 0 || n == 1)
return true;
for (int i = 1; i < n; i++)
// Unsorted pair found
if (arr[i - 1] > arr[i])
return false;
// No unsorted pair found
return true;
}
// driver code
public static void main(String[] args)
{
int arr[] = { 20, 23, 23, 45, 78, 88 };
int n = arr.length;
if (arraySortedOrNot(arr, n))
System.out.print("Yes\n");
else
System.out.print("No\n");
}
}
// This code is contributed by Anant Agarwal.
Python
# Python3 program to check if an
# Array is sorted or not
# Function that returns true if array is
# sorted in non-decreasing order.
def arraySortedOrNot(arr, n):
# Array has one or no element
if (n == 0 or n == 1):
return True
for i in range(1, n):
# Unsorted pair found
if (arr[i-1] > arr[i]):
return False
# No unsorted pair found
return True
# Driver code
arr = [20, 23, 23, 45, 78, 88]
n = len(arr)
if (arraySortedOrNot(arr, n)):
print("Yes")
else:
print("No")
# This code is contributed by Anant Agarwal.
C#
// Recursive approach to check if an
// Array is sorted or not
using System;
class GFG
{
// Function that returns true if array is
// sorted in non-decreasing order.
static bool arraySortedOrNot(int []arr, int n)
{
// Array has one or no element
if (n == 0 || n == 1)
return true;
for (int i = 1; i < n; i++)
// Unsorted pair found
if (arr[i - 1] > arr[i])
return false;
// No unsorted pair found
return true;
}
// Driver code
public static void Main(String[] args)
{
int []arr = { 20, 23, 23, 45, 78, 88 };
int n = arr.Length;
if (arraySortedOrNot(arr, n))
Console.Write("Yes\n");
else
Console.Write("No\n");
}
}
// This code is contributed by PrinciRaj1992
JavaScript
// JavaScript program Iterative approach to check if an
// Array is sorted or not
// Function that returns true if array is
// sorted in non-decreasing order.
function arraySortedOrNot(arr, n){
// Array has one or no element
if (n === 0 || n === 1) {
return true;
}
for (let i = 1; i < n; i++) {
// Unsorted pair found
if (arr[i - 1] > arr[i]) {
return false;
}
}
// No unsorted pair found
return true;
}
// Driver Code
let arr = [20, 23, 23, 45, 78, 88];
let n = arr.length;
if (arraySortedOrNot(arr, n)) {
console.log("Yes");
} else {
console.log("No");
}
Recursive approach - O(n) Time and O(n) Space
The basic idea for the recursive approach:
- If size of array is zero or one, return true.
- Check last two elements of array, if they are sorted, perform a recursive call with n-1 else, return false.
C++
#include <iostream>
#include <vector>
using namespace std;
// Recursive function that returns true if vector is
// sorted in non-decreasing order.
bool isSorted(const vector<int>& arr, int n)
{
// Base case
if (n == 1 || n == 0)
return true;
// Check if current and previous elements are in order
// and recursively check the rest of the array
return arr[n - 1] >= arr[n - 2] && isSorted(arr, n - 1);
}
// Driver code
int main()
{
vector<int> arr = { 20, 23, 23, 45, 78, 88 };
cout << (isSorted(arr, arr.size()) ? "Yes\n" : "No\n");
return 0;
}
C
// C Recursive approach to check if an
// Array is sorted or not
#include <stdio.h>
// Function that returns true if array is
// sorted in non-decreasing order.
int arraySortedOrNot(int a[], int n)
{
// Base case
if (n == 1 || n == 0) {
return 1;
}
// Check if present index and index
// previous to it are in correct order
// and rest of the array is also sorted
// if true then return true else return
// false
return a[n - 1] >= a[n - 2]
&& arraySortedOrNot(a, n - 1);
}
// Driver code
int main()
{
int arr[] = { 20, 23, 23, 45, 78, 88 };
int n = sizeof(arr) / sizeof(arr[0]);
// Function Call
if (arraySortedOrNot(arr, n)) {
printf("Yes\n");
}
else {
printf("No\n");
}
return 0;
}
Java
// Java Recursive approach to check if an
// Array is sorted or not
class GFG {
// Function that returns true if array is
// sorted in non-decreasing order.
static boolean arraySortedOrNot(int a[], int n)
{
// base case
if (n == 1 || n == 0)
return true;
// check if present index and index
// previous to it are in correct order
// and rest of the array is also sorted
// if true then return true else return
// false
return a[n - 1] >= a[n - 2]
&& arraySortedOrNot(a, n - 1);
}
// Driver code
public static void main(String[] args)
{
int arr[] = { 20, 23, 23, 45, 78, 88 };
int n = arr.length;
// Function Call
if (arraySortedOrNot(arr, n))
System.out.print("Yes");
else
System.out.print("No");
}
}
// This code is contributed by Durgesh N. Birmiwal.
Python
# Python3 recursive program to check
# if an Array is sorted or not
# Function that returns true if array
# is sorted in non-decreasing order.
def arraySortedOrNot(arr, n):
# Base case
if (n == 0 or n == 1):
return True
# Check if present index and index
# previous to it are in correct order
# and rest of the array is also sorted
# if true then return true else return
# false
return (arr[n - 1] >= arr[n - 2] and
arraySortedOrNot(arr, n - 1))
# Driver code
arr = [ 20, 23, 23, 45, 78, 88 ]
n = len(arr)
# Function Call
if (arraySortedOrNot(arr, n)):
print("Yes")
else:
print("No")
# This code is contributed by Virusbuddah
C#
// C# recursive approach to check if an
// Array is sorted or not
using System;
class GFG{
// Function that returns true if array is
// sorted in non-decreasing order.
static bool arraySortedOrNot(int[] a, int n)
{
// Base case
if (n == 1 || n == 0)
{
return true;
}
// Check if present index and index
// previous to it are in correct order
// and rest of the array is also sorted
// if true then return true else return
// false
return a[n - 1] >= a[n - 2] &&
arraySortedOrNot(a, n - 1);
}
// Driver code
static public void Main()
{
int[] arr = { 20, 23, 23, 45, 78, 88 };
int n = arr.Length;
// Function Call
if (arraySortedOrNot(arr, n))
{
Console.WriteLine("Yes");
}
else
{
Console.WriteLine("No");
}
}
}
// This code is contributed by rag2127
JavaScript
// JavaScript Recursive approach to check if an
// Array is sorted or not
// Function that returns true if array is
// sorted in non-decreasing order.
function arraySortedOrNot(a, n) {
// Base case
if (n == 1 || n == 0) {
return true;
}
// Check if present index and index
// previous to it are in correct order
// and rest of the array is also sorted
// if true then return true else return
// false
return a[n - 1] >= a[n - 2] && arraySortedOrNot(a, n - 1);
}
// Driver code
let arr = [20, 23, 23, 45, 78, 88];
let n = arr.length;
// Function Call
if (arraySortedOrNot(arr, n)) {
console.log("Yes");
} else {
console.log("No");
}
Time Complexity: O(n)
Auxiliary Space: O(n) for Recursion Call Stack.
Similar Reads
Check if an array is stack sortable Given an array arr[] of n distinct elements, where each element is between 1 and n (inclusive), determine if it is stack-sortable.Note: An array a[] is considered stack-sortable if it can be rearranged into a sorted array b[] using a temporary stack stk with the following operations:Remove the first
6 min read
Check if an array is sorted and rotated Given an array arr[] of size n, the task is to return true if it was originally sorted in non-decreasing order and then rotated (including zero rotations). Otherwise, return false. The array may contain duplicates.Examples:Input: arr[] = { 3, 4, 5, 1, 2 }Output: YESExplanation: The above array is so
7 min read
Check if an array is Wave Array Given an array of N positive integers. The task is to check if the array is sorted in wave form. Examples: Input: arr[] = {1, 2, 3, 4, 5}Output: NO Input: arr[] = {1, 5, 3, 7, 2, 8, 6}Output: YES Recommended: Please try your approach on {IDE} first, before moving on to the solution.Approach: First c
14 min read
Check if a given array is pairwise sorted or not An array is considered pairwise sorted if each successive pair of numbers is in sorted (non-decreasing) order. In case of odd elements, last element is ignored and result is based on remaining even number of elements. Examples: Input : arr[] = {10, 15, 9, 9, 1, 5}; Output : Yes Pairs are (10, 15), (
5 min read
Check if the array is beautiful Given an integer n and an array of size n check if it satisfies following conditions:- All elements of array must lie between 1 to n.Array must NOT be sorted in ascending order.The array consists of unique elements.If all conditions satisfied print Yes else No. Examples: Input: 4 1 2 3 4Output: NoAr
9 min read
Check if two arrays are equal or not Given two arrays, a and b of equal length. The task is to determine if the given arrays are equal or not. Two arrays are considered equal if:Both arrays contain the same set of elements.The arrangements (or permutations) of elements may be different.If there are repeated elements, the counts of each
6 min read
Check if array can be sorted with one swap Given an array containing N elements. Find if it is possible to sort it in non-decreasing order using atmost one swap. Examples: Input : arr[] = {1, 2, 3, 4} Output : YES The array is already sorted Input : arr[] = {3, 2, 1} Output : YES Swap 3 and 1 to get [1, 2, 3] Input : arr[] = {4, 1, 2, 3} Out
11 min read
Check if reversing a sub array make the array sorted Given an array of n distinct integers. The task is to check whether reversing any one sub-array can make the array sorted or not. If the array is already sorted or can be made sorted by reversing any one subarray, print "Yes", else print "No". Examples: Input : arr [] = {1, 2, 5, 4, 3}Output : YesBy
15+ min read
Check if a given array is sorted in Spiral manner or not Given an array arr[] of size N, the task is to check if the array is spirally sorted or not. If found to be true, then print "YES". Otherwise, print "NO". Note: An array is spirally sorted if arr[0] ? arr[N - 1] ? arr[1] ? arr[N - 2] ... Examples: Input: arr[] = { 1, 10, 14, 20, 18, 12, 5 } Output:
5 min read
Check whether a given array is a k sorted array or not Given an array of n distinct elements. Check whether the given array is a k sorted array or not. A k sorted array is an array where each element is at most k distances away from its target position in the sorted array. For example, let us consider k is 2, an element at index 7 in the sorted array, c
12 min read