ImportJava.io.*;ImportJava.lang.reflect.Array;Importjava.util.Arrays;Importjava.util.Collection;classTest { Public Static voidMain (string[] args)throwsjava.lang.Exception {int[] B = {6,7,8,9,1,2,3,4,5}; int[] C = {{1, 3, 5, 7},{10, 11, 16, 20}, {23, 30, 34, 50}}; System.out.println (Search_mini (B)); System.out.println (Search (B,1)); System.out.println (Arrays.tostring (Search_2d_matrix (c,30))); } Public Static int[] Search_2d_matrix (int[] Matrix,inttarget) { introw = matrix.length, column = Matrix[0].length; intBegin = 0, end = row *column; int[] result = {-1,-1}; while(Begin + 1 <end) { intMID = (begin + END)/2; intNumber = Matrix[mid/column][mid%column]; if(Number = =target) {result[0] = mid/column; result[1] = mid%column; returnresult; } Else if(Number <target) {Begin=mid; } Else{End=mid; } } returnresult; } Public Static intSearch_mini (int[] A) { intBegin = 0, end = a.length-1; while(Begin < End && A[begin] >=A[end]) { intMID = (begin + END)/2; if(A[mid] >A[end]) {Begin= Mid + 1; } Else if(A[mid] <A[begin]) {End=mid; } Else{//A[begin] = = A[mid] = = A[end]begin = begin + 1; } } returnA[begin]; } Public Static intSearchint[] A,inttarget) { intBegin = 0; intEnd =a.length; while(Begin <end) { intp = (end + begin)/2; if(A[p] = = target)returnp; Else if(A[p] >A[begin]) { if(Target >= A[begin] && Target <A[p]) {End=p; } ElseBegin = P + 1; } Else{ if(Target > A[p] && target <= a[end-1]) {begin= p + 1; } ElseEnd =p; } } return-1; }}
Search in 2d matrix and serach minimum in rotated array