#5 Javaで書いた二分探索法【保存版】
Javaで書いた二分探索法のソースコードです。
/* 二分探索法 */
import java.util.Scanner;
class BinarySearch {
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
int[] a = {5,11,15,18,24,25,29,31,34,45,58,65,71,79,81}; //探索するデータ(要素数は15個)
int pl = 0; //探索範囲の先頭の添え字
int pc; //探索範囲の中央の添え字
int pr = a.length; //探索範囲の末尾の添え字
int key; //キーボードから入力した探すデータ
int idx = -1;
int n = 0;
//System.out.println(pr);
System.out.print("データを入力してください。:");
key = stdIn.nextInt();
/* 二分探索処理 */
do {
n++;
pc = (pl + pr) / 2;
if (a[pc] == key) {
idx = pc + 1;
break;
} else if (a[pc] <= key) {
pl = pc + 1;
} else {
pr = pc - 1;
}
} while (pl <= pr);
/*--------------*/
if (idx == -1) {
System.out.println("探索に失敗しました。");
} else {
System.out.println(key + "は" + idx + "番目にあります。");
System.out.println("探索回数は" + n + "回です。");
}
}
この記事が気に入ったらサポートをしてみませんか?