確認1


package rec;
import rec.Record2;
public class Rec23BinSearch
{	// 2分探索(binary search )
	public static void main(String[] arg)
	{
		Record2[] a = rec.Rec23Data.getData();
		Record2 key = new Record2("B02", 0);// 探したいデータ
		int iFound = binSearch(a, key, 0, 8); //実際に存在するデータ範囲のを指定
		if (iFound == -1){
			System.out.println("見つかりません");
			System.exit(0);//実行終了
		}
		a[iFound].display(iFound);
	}

	//バイナリーサーチ
	public static int binSearch(Record2[] a, Record2 key, int iStart, int iEnd)
	{
		int iL = iStart;	//現在の探索範囲で、先頭の添え字(左)
		int iR = iEnd - 1;	//現在の探索範囲で、末尾の添え字(右)
		while (iL <= iR){
			int iC = (iL + iR) / 2;	//現在の探索範囲で、中央の添え字(中心)
			Record2 rec = a[iC];
			int val = rec.compareTo(key);//比較
			if (val == 0){
				return iC;//見つかった
			} else if (val < 0) {//keyが大きい
				iL = iC + 1;
			} else {/* keyが小さい */
				iR = iC - 1;
			}
		}
		return -1; //見つからない
	}
}