binarySearcha method

int binarySearcha(
  1. List<T> data,
  2. T target
)

Implementation

int binarySearcha(List<T> data, T target) {
  final stopWatch = Stopwatch()..start();
  int left = 0;
  int right = data.length - 1;

  while (left <= right) {
    int mid = left + (right - left) ~/ 2;

    if (data[mid] == target) {
      stopWatch.stop();
      print(
          "Binary Search took ${stopWatch.elapsedMicroseconds} microseconds");
      return mid;
    } else if ((data[mid] as Comparable).compareTo(target) < 0) {
      left = mid + 1;
    } else {
      right = mid - 1;
    }
  }

  stopWatch.stop();
  print("Binary Search took ${stopWatch.elapsedMicroseconds} microseconds");
  return -1;
}