Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Write a description of class Ex14 here.
- *
- * @author (your name)
- * @version (a version number or a date)
- */
- public class Ex14
- {
- private static final int DEFAULT_VAL = -1;
- public static int findMinDiff(int[] a, int x, int y)
- {
- int iX = DEFAULT_VAL;
- int iY = DEFAULT_VAL;
- int dist = DEFAULT_VAL;
- for(int i = 0; i < a.length; i++)
- {
- if(a[i] == x)
- {
- iX = i;
- }
- else if(a[i] == y)
- {
- iY = i;
- }
- if(iX != -1 && iY != -1)
- {
- dist = Math.abs(iX - iY);
- }
- }
- if(dist == DEFAULT_VAL)
- {
- return Integer.MAX_VALUE;
- }
- return dist;
- }
- public static boolean search(int[][] mat, int num)
- {
- int rL = 0, rH = mat.length;
- int cL = 0, cH = mat.length;
- int pR = rL + (rH - rL)/2;
- int pC = cL + (cH - cL) / 2;
- for(int i = 0; i < Math.log(mat.length)/Math.log(2); i++)
- {
- pR = rL + (rH - rL)/2;
- pC = cL + (cH - cL) / 2;
- if(num >= mat[pR][cL])
- {
- rL = pR;
- cH = pC;
- }
- else if(num >= mat[pR][pC])
- {
- rL = pR;
- cL = pC;
- }
- else if(num >= mat[rL][pC])
- {
- rH = pR;
- cL = pC;
- }
- else
- {
- rH = pR;
- cH = pC;
- }
- }
- pR = rL + (rH - rL)/2;
- pC = cL + (cH - cL) / 2;
- return mat[pR][pC] == num;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement