首页 > 代码库 > java实现——008旋转数组的最小数字
java实现——008旋转数组的最小数字
1 public class T008 { 2 public static void main(String[] args) { 3 int[] num = { 3, 4, 5, 1, 2 }; 4 System.out.println(min(num, 5)); 5 } 6 public static int min(int num[], int len) { 7 if (num == null || len <= 0) { 8 System.out.println("invalid"); 9 } 10 int in1 = 0; 11 int in2 = len - 1; 12 int inm = in1; 13 while (num[in1] >= num[in2]) { 14 if (in2 - in1 == 1) { 15 inm = in2; 16 break; 17 } 18 inm = (in2 + in1) / 2; 19 if (num[in1] == num[inm] && num[in1] == num[in2]) 20 return minInOrder(num, in1, in2); 21 if (num[inm] >= num[in1]) { 22 in1 = inm; 23 } else { 24 in2 = inm; 25 } 26 } 27 return num[inm]; 28 } 29 30 public static int minInOrder(int num[], int in1, int in2) { 31 int result = num[in1]; 32 for (int i = in1 + 1; i <= in2; i++) { 33 if (num[i] < result) 34 result = num[i]; 35 } 36 return result; 37 } 38 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。