Count elements less than or equal to a given value in a sorted rotated array in C++

C++Server Side ProgrammingProgramming

We are given with an array of integers. The array is a sorted rotated array. The goal is to find the number of elements in the array that are equal to or less than the given number K.

Approach is to traverse the whole array and count such elements which are either less or equal to K.

Input

Arr[]= { 1,2,3,4,9,8,10 } K=4

Output

Elements less than or equal to 4 : 4

Explanation − Elements <=4 are 1,2,3,4 Count=4

Input

Arr[]= { 5,3,6,1,8,100,12,31 } K=3

Output

Elements less than or equal to 3: 2

Explanation − Elements <=3 are 1,3 Count=2

Approach used in the below program is as follows

  • The integer array Arr[] is used to store the integers, K to denote a number.

  • Integer ‘n’ stores the length of the array.

  • Variable count is used to store the count of numbers less or equal to K.

  • Traverse the array once starting from the first element( index=0 ).

  • If current element <=K increment count.

  • Count contains the desired result.

  • Display the result.

Example

 Live Demo

#include <iostream>
using namespace std;
int main(){
   int Arr[]= { 4,5,8,1,3,7,10,9,11 };
   int k=7;
   int n=sizeof(Arr)/sizeof(Arr[0]);
   int count=0;
   for(int i=0;i<n;i++)
      if(Arr[i]<=k)
         count++;
      std::cout<<"Elements less than or equal to "<<k<<" in given sorted rotated array : "<<count;
   return 0;
}

Output

Elements less than or equal to 7 in given sorted rotated array : 5
raja
Published on 28-Jul-2020 14:35:34
Advertisements