CSharp · Console
using System;
public class Program
{
public static void Main()
{
int[] breakpoint = new int[] {0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100,
110, 120, 130, 140, 150, 160, 170, 180, 190, 200};
foreach(int valueSearched in new[]{153, 225, -1, 5})
{
int index = GetNearestIndex(breakpoint, valueSearched);
Console.WriteLine($"Searched <{valueSearched}> at index <{index}> with value <{breakpoint[index]}>");
}
}
public static int GetNearestIndex<T>(T[] items, T value)
{
int index = Array.BinarySearch(items, value);
if(index >= 0)
return index;
if(index == -1)
return 0;
return ~index - 1;
}
}