seo在线诊断工具,东莞网站seo,金融培训网站源码,怎么创办app尽可能使用二分查找 假设在 left right 之间查找 关键是mid处理过程 导致 left 跟 right 的改变 控制去哪里寻找 分如下情况#xff1a; 若 mid处 不为空#xff0c;并且 此处就是 str 那么记下 mid #xff0c;同时把right-1 #xff08;往左寻找#xff09; 若…尽可能使用二分查找 假设在 left right 之间查找 关键是mid处理过程 导致 left 跟 right 的改变 控制去哪里寻找 分如下情况 若 mid处 不为空并且 此处就是 str 那么记下 mid 同时把right-1 往左寻找 若 mid处不为空并且此处不是str比较字典顺序 若 mid处为空 则通过while控制向左边移动左边没有元素或者找到的字典顺序小于strleftmid1 字典顺序大于str 或者等于 str 此时 res strs[i].equals(str) ? i : res 然后righti-1; 注意是i-1 此处的位置-1 package TT;import java.awt.List;public class Test3 {public static int getIndex (String[] strs, String str){if(strsnull || strs.length0 ||str null){return -1;}int res -1;int left 0;int right strs.length;int mid 0;int i 0;while(left right){mid(leftright)/2;if(strs[mid]!null strs[mid].equals(str)){res mid;right mid-1;}else if(strs[mid]!null){if(strs[mid].compareTo(str)0){left mid1;}else {right mid-1;}}else{i mid; //把此时的mid记下了while(strs[i]null --ileft);if(ileft || strs[i].compareTo(str)0){left mid1;}else{res strs[i].equals(str) ? i :res;right i-1;}}}return res;}public static void main(String[] args){String[] objects new String[6];objects[0]null;objects[1]b;objects[2]null;objects[3]b;objects[4]null;objects[5]a;String s b;int a getIndex(objects,s);System.out.println(a);} }转载于:https://www.cnblogs.com/toov5/p/7398958.html