【Java开源代码栏目提醒】:网学会员鉴于大家对Java开源代码十分关注,论文会员在此为大家搜集整理了“TextArraySearch.java”一文,供大家参考学习
package com.zf.s4; //鍒涘缓涓涓寘
import java.util.Arrays;
public class TextArraySearch { // 杩愮敤閫掑綊鍜屼簩鍒嗘硶鎼滅储鏁扮粍鍏冪礌鐨勭被
//杩愮敤閫掑綊鍜屼簩鍒嗘煡鎵剧壒瀹氭暣鏁板湪鏁村瀷鏁扮粍涓殑浣嶇疆
public static int binarySearch1(int[] array, int index, int beginIndex,
int endIndex) {
int midIndex = (beginIndex + endIndex) / 2;
if (index < array[beginIndex] || index > array[endIndex]
|| beginIndex > endIndex) //鍒ゆ柇瑕佹悳绱㈢殑鏁板瓧鏄惁鍚堢悊
return -1;
if (index < array[midIndex]) { //鎼滅储鏁板瓧浣嶄簬鏁扮粍鍓嶅崐閮ㄥ垎
return binarySearch1(array, index, beginIndex, midIndex - 1);//杩愮敤閫掑綊
} else if (index > array[midIndex]) { //鎼滅储鏁板瓧浣嶄簬鏁扮粍鍚庡崐閮ㄥ垎
return binarySearch1(array, index, midIndex + 1, endIndex);//杩愮敤閫掑綊
} else {
return midIndex; //鎼滅储鏁板瓧浣嶄簬鏁扮粍涓棿
}
}
//杩愮敤闈為掑綊鍜屼簩鍒嗘煡鎵剧壒瀹氭暣鏁板湪鏁村瀷鏁扮粍涓殑浣嶇疆
public static int binarySearch2(int[] array, int index) {
int beginIndex = 0; //璧峰浣嶇疆锛屾寚鐨勬槸鍏冪礌涓嬫爣
int endIndex = array.length - 1; //缁撴潫浣嶇疆
int midIndex = -1;
if (index < array[beginIndex] || index > array[endIndex]
|| beginIndex > endIndex) //鍒ゆ柇瑕佹悳绱㈢殑鏁板瓧鏄惁鍚堢悊
return -1;
//寰幆鍒ゆ柇锛屾牴鎹捣濮嬩綅缃笌缁撴潫浣嶇疆鏄惁鐩哥瓑
while (beginIndex <= endIndex) {
midIndex = (beginIndex + endIndex) / 2;//鑾峰緱鏁扮粍涓棿浣嶇疆
if (index < array[midIndex]) { //鎼滅储鏁板瓧浣嶄簬鏁扮粍鍓嶅崐閮ㄥ垎
endIndex = midIndex - 1; //閲嶆柊瀹氫綅缁撴潫浣嶇疆
} else if (index > array[midIndex]) {//鎼滅储鏁板瓧浣嶄簬鏁扮粍鍚庡崐閮ㄥ垎
beginIndex = midIndex + 1; //閲嶆柊瀹氫綅璧峰浣嶇疆
} else {
return midIndex; //鎼滅储鏁板瓧浣嶄簬鏁扮粍涓棿
}
}
return -1;
}
public static void main(String []args){ //java绋嬪簭鐨勪富鍏ュ彛澶?
int []array=new int[]{12,3,2,18,24,15,20};//澹版槑鏁扮粍骞跺垵濮嬪寲
int number=18; //澹版槑鍙橀噺
int num=1;
Arrays.sort(array); //浜屽垎娉曟悳绱㈠厓绱犱箣鍓嶅繀椤诲鏁扮粍杩涜鎺掑簭
System.out.println("鍏冪礌"+number+"鎵鍦ㄧ殑浣嶇疆鍦細"+binarySearch1(array,number,0,array.length-1));
System.out.println("鍏冪礌"+number+"鎵鍦ㄧ殑浣嶇疆鍦細"+binarySearch2(array,number));
System.out.println("鍏冪礌"+num+"鎵鍦ㄧ殑浣嶇疆鍦細"+binarySearch2(array,num));
}
}
上一篇:
TextArrayList.java
下一篇:
贪心算法论文终稿