CSharp examples for System:Array Search
Search a sorted integer array for the target value in O(log N) time.
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System.Diagnostics; using System;/*from w ww . j av a 2 s.c o m*/ public class Main{ /// <summary> /// Search a sorted integer array for the target value in O(log N) time. /// </summary> /// <param name="array">The array of integers which must be sorted in ascending order.</param> /// <param name="value">The target value.</param> /// <returns>An index in the array pointing to the position where <paramref name="value"/> should be /// inserted in order to maintain the sorted order. All values to the right of this position will be /// strictly greater than <paramref name="value"/>. Note that this may return a position off the end /// of the array if all elements are less than or equal to <paramref name="value"/>.</returns> internal static int BinarySearchUpperBound(this int[] array, int value) { int low = 0; int high = array.Length - 1; while (low <= high) { int middle = low + ((high - low) >> 1); if (array[middle] > value) { high = middle - 1; } else { low = middle + 1; } } return low; } }