現在未経験から、独学でJavaを勉強中の身です。
今回課題は、フローチャートを作成する練習をおこなっており、
a[10]の配列をソートし、配列内データの最大値と最小値の平均の近似値を求め、その値が格納されている配列位置をあきらかにしなさい。
というアルゴリズムを考えるものです。
ソートについては、数が少なかったので、バブルソートを実行済みです。
int[] a = {1, 15, 20, 30, 35, 40, 60, 70, 75, 100};
int target = 80;
これをフローチャートで紐解いていきたいと考えています。
自分の考えを整理すると
int left = 0;
int right = a.length - 1;
①int mid = (left + right) / 2;
if (a[mid] == target){
System.out.println("近似値のある配列はa[" + mid + "]です。");
} else {
if (target < a[mid]) {
right = mid;
else
left = mid;
}
}
その後①を繰りかえす。
仮に丁度 target と同じ数字があるならば、これで完結しますが、現在の場合のように近似値を求める場合の考え方がわかっておりません。
初歩的な質問であることは重々承知ですがどなたか教えていただけませんでしょうか?