有序字符串数组做查找


package demo;

public class P28 {
//一个有序字符串数组,其中散布着空字符串。编写程序,求指定字符串的索引
//因为字符串有序,所以采用二分法思路,规定中点为空串时右移
	public static void main(String[] args) {
		String[] arr = {"a","","ac","","ad","b","","ba"};
		System.out.println(indexOf(arr,"ac"));
	}

	static int indexOf(String[] arr,String target) {
		int begin=0;
		int end=arr.length-1;
		while(begin<=end) {
			int mid = begin+((end-begin)>>1);
			while(arr[mid].equals("")) {
				mid++;
				if(mid>end) 
					return -1;
			}
			
			if(arr[mid].compareTo(target)>0) {
				end=mid-1;
			}
			else if(arr[mid].compareTo(target)<0) {
				begin=mid+1;
			}
			else {
				return mid;
			}
		}
		return -1;
	}
	
}
posted @   fighterk  阅读(31)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示