Here is program i wrote #include <stdio.h> #include <iostream> using namespace std; void rotateArray( int *a , int size, int rotation) { int len = size; if (len < rotation ) return; int *temp = new int [rotation]; int i = 0; int temp_index = 0; for ( i = len-rotation; i < len;i++) temp[temp_index++] = a[i]; for ( i = len-rotation -1; i>=0; i--) a[i+rotation] = a[i]; for ( i = 0; i < rotation;i++) a[i] = temp[i]; delete temp; } void search( int *a, int size, int number) { int low = 0; int high = size -1; while (low <= high) { int mid = low+(high - low)/2; if ( number == a[mid] ) { cout<<"Got number @"<<mid<<endl; return; } if ( a[low] < a[mid]) //Lower part sorted { if ( a[mid] > number && a[low] <= number ) high = mid-1; else low = mid+1; } else //Upper part sorted { if ( a[mid] < number && a[high] ...
Collection of Interview Question on Data structure, Algorithm, Java, C++ and more