検索したい数字 int bot = 0; int top = n; while (abs(bot - top) > 1) { int mid = (bot + top) / 2; if (array[mid] <= key) bot = mid; else top = mid; } int key = 8; // 検索したい数字 int bot = 0; int top = n-1; while (bot <= top - 1) { int mid = (bot + top) / 2; if (a[mid] == key) { bot = mid; break; } else if (a[mid] > key) { top = mid - 1; } else { bot = mid + 1; } } 閉区間 半開区間 場合分けが減った 添字が簡潔になった