Skip to content
geeksforgeeks
  • Tutorials
    • Python
    • Java
    • Data Structures & Algorithms
    • ML & Data Science
    • Interview Corner
    • Programming Languages
    • Web Development
    • CS Subjects
    • DevOps And Linux
    • School Learning
    • Practice Coding Problems
  • Courses
    • DSA to Development
    • Get IBM Certification
    • Newly Launched!
      • Master Django Framework
      • Become AWS Certified
    • For Working Professionals
      • Interview 101: DSA & System Design
      • Data Science Training Program
      • JAVA Backend Development (Live)
      • DevOps Engineering (LIVE)
      • Data Structures & Algorithms in Python
    • For Students
      • Placement Preparation Course
      • Data Science (Live)
      • Data Structure & Algorithm-Self Paced (C++/JAVA)
      • Master Competitive Programming (Live)
      • Full Stack Development with React & Node JS (Live)
    • Full Stack Development
    • Data Science Program
    • All Courses
  • DSA
  • Interview Questions on Array
  • Practice Array
  • MCQs on Array
  • Tutorial on Array
  • Types of Arrays
  • Array Operations
  • Subarrays, Subsequences, Subsets
  • Reverse Array
  • Static Vs Arrays
  • Array Vs Linked List
  • Array | Range Queries
  • Advantages & Disadvantages
Open In App
Next Article:
Check if an Array is Sorted
Next article icon

Check if an Array is Sorted

Last Updated : 13 May, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report
Try it on GfG Practice
redirect icon

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

Table of Content

  • Iterative approach - O(n) Time and O(1) Space
  • Recursive approach - O(n) Time and O(n) Space

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

Output
Yes

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

Output
Yes

Time Complexity: O(n) 
Auxiliary Space: O(n) for Recursion Call Stack.


Next Article
Check if an Array is Sorted

R

Rohit Thapliyal
Improve
Article Tags :
  • Sorting
  • DSA
  • Arrays
  • Arrays
Practice Tags :
  • Arrays
  • Arrays
  • Sorting

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 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 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
geeksforgeeks-footer-logo
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)
Registered Address:
K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305
GFG App on Play Store GFG App on App Store
Advertise with us
  • Company
  • About Us
  • Legal
  • Privacy Policy
  • In Media
  • Contact Us
  • Advertise with us
  • GFG Corporate Solution
  • Placement Training Program
  • Languages
  • Python
  • Java
  • C++
  • PHP
  • GoLang
  • SQL
  • R Language
  • Android Tutorial
  • Tutorials Archive
  • DSA
  • Data Structures
  • Algorithms
  • DSA for Beginners
  • Basic DSA Problems
  • DSA Roadmap
  • Top 100 DSA Interview Problems
  • DSA Roadmap by Sandeep Jain
  • All Cheat Sheets
  • Data Science & ML
  • Data Science With Python
  • Data Science For Beginner
  • Machine Learning
  • ML Maths
  • Data Visualisation
  • Pandas
  • NumPy
  • NLP
  • Deep Learning
  • Web Technologies
  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • ReactJS
  • NextJS
  • Bootstrap
  • Web Design
  • Python Tutorial
  • Python Programming Examples
  • Python Projects
  • Python Tkinter
  • Python Web Scraping
  • OpenCV Tutorial
  • Python Interview Question
  • Django
  • Computer Science
  • Operating Systems
  • Computer Network
  • Database Management System
  • Software Engineering
  • Digital Logic Design
  • Engineering Maths
  • Software Development
  • Software Testing
  • DevOps
  • Git
  • Linux
  • AWS
  • Docker
  • Kubernetes
  • Azure
  • GCP
  • DevOps Roadmap
  • System Design
  • High Level Design
  • Low Level Design
  • UML Diagrams
  • Interview Guide
  • Design Patterns
  • OOAD
  • System Design Bootcamp
  • Interview Questions
  • Inteview Preparation
  • Competitive Programming
  • Top DS or Algo for CP
  • Company-Wise Recruitment Process
  • Company-Wise Preparation
  • Aptitude Preparation
  • Puzzles
  • School Subjects
  • Mathematics
  • Physics
  • Chemistry
  • Biology
  • Social Science
  • English Grammar
  • Commerce
  • World GK
  • GeeksforGeeks Videos
  • DSA
  • Python
  • Java
  • C++
  • Web Development
  • Data Science
  • CS Subjects
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Cookie Policy & Privacy Policy
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences