public static int BinarySearch(List <EventInfo> _list, int _frame) { frame = _frame; if (instance_ == null) { instance_ = new SearchComparer(); } return(_list.BinarySearch(null, instance_)); }
private static void Find( IList <SWATHIndexerItem> results, SWATHIndexerItem[] items, SearchComparer comparer, int lo, int hi, double mz, double rt, double rtOffset) { //for (int i = lo; i <= hi; i++) //{ // int c = comparer.Invoke(items[i], mz, rt, rtOffset); // if (c == 0) // { // results.Add(items[i]); // } //} while (lo <= hi) { int mid = lo + ((hi - lo) >> 1); int c = comparer.Invoke(items[mid], mz, rt, rtOffset); if (c == 0) { results.Add(items[mid]); Find(results, items, comparer, lo, mid - 1, mz, rt, rtOffset); Find(results, items, comparer, mid + 1, hi, mz, rt, rtOffset); return; } if (c < 0) { lo = mid + 1; } else { hi = mid - 1; } } }
public IList <SWATHIndexerItem> Find(SearchComparer comparer, double mz, double rt, double rtOffset) { IList <SWATHIndexerItem> results = new List <SWATHIndexerItem>(); return(Find(results, comparer, mz, rt, rtOffset)); }
public IList <SWATHIndexerItem> Find(IList <SWATHIndexerItem> results, SearchComparer comparer, double mz, double rt, double rtOffset) { Find(results, items, comparer, 0, items.Length - 1, mz, rt, rtOffset); return(results); }