二分探索

プログラムの図的表現

key = 8
01 low
13
24
38
413
514
618
720
821
925high



変数の動き

変数「mid」の動き
mid =

プログラム操作




int binary_search(int key) {
  int low = 0 ;
  int high = N - 1;
  int mid;

  while (low <= high) {
    mid = (low + high) /2;
    if (s[mid] == key ) {
      return (mid);
    }
    if (s[mid] > key)
      high = mid - 1;
    else
      low = mid + 1 ;
  }
  return -1;
}

プログラムの図的表現

key = 8
01 low
13
24
38
413
514
618
720
821
925high