Sha256: 5ce8716bb6ce5685c34fdd6eb8881a51bae88267c4c590f873310e5a2c68368b
Contents?: true
Size: 785 Bytes
Versions: 188
Compression:
Stored size: 785 Bytes
Contents
public class BinarySearch { private readonly int[] _input; public BinarySearch(int[] input) => _input = input; public int Find(int target) { if (_input.Length == 0) return -1; return FindHelper(target, 0, _input.Length - 1); } private int FindHelper(int target, int minIndex, int maxIndex) { var middleIndex = (minIndex + maxIndex) / 2; if (_input[middleIndex] == target) return middleIndex; if (middleIndex <= 0 || middleIndex >= _input.Length - 1 || minIndex == maxIndex) return -1; if (_input[middleIndex] > target) return FindHelper(target, minIndex, middleIndex - 1); return FindHelper(target, middleIndex + 1, maxIndex); } }
Version data entries
188 entries across 188 versions & 1 rubygems