Java program to search an element in a sorted and rotated array

package com.shohan;

import java.util.*;

public class Main {
    public static void main(String[] args) {
        // code
        int[] arr = {16, 19, 21, 25, 3, 5, 8, 10};
        int number = 8;
        int low = 0;
        int high = arr.length - 1;
        System.out.println(search(
                arr,
                low,
                high,
                number
        ));
    }

    private static int search(int[] arr, int low, int high, int number) {
        int mid;
        while (low <= high) {
            mid = low + ((high - low) / 2);

            if (arr[mid] == number) {
                return mid;
            }
            if (arr[mid] <= arr[high]) {
                // Right part is sorted
                if (number > arr[mid] && number <= arr[high]) {
                    low = mid + 1;
                } else {
                    high = mid - 1;
                }
            } else {
                // Left part is sorted
                if (number < arr[mid] && number >= arr[low]) {
                    high = mid - 1;
                } else {
                    low = mid + 1;
                }
            }
        }
        return -1;
    }
}