查找最小值和最大值之间的值

时间:2016-06-21 13:19:49

标签: c#

 public static double valore(double value_in)
 {
    var minimi = new List<double>();
    minimi.Add(4.55);
    minimi.Add(4.75);
    minimi.Add(5.1);
    minimi.Add(5.6);
    minimi.Add(5.9);
    minimi.Add(6.1);
    minimi.Add(6.5);
    minimi.Add(7);
    minimi.Add(7.4);
    minimi.Add(7.8);
    var massimi = new List<double>();
    massimi.Add(4.65);
    massimi.Add(4.85);
    massimi.Add(5.35);
    massimi.Add(5.75);
    massimi.Add(6.05);
    massimi.Add(6.35);
    massimi.Add(6.65);
    massimi.Add(7.25);
    massimi.Add(7.65);
    massimi.Add(7.95);
    var values = new List<double>();
    values.Add(4.6);
    values.Add(4.8);
    values.Add(5.2);
    values.Add(5.6);
    values.Add(5.9);
    values.Add(6.2);
    values.Add(6.5);
    values.Add(7.2);
    values.Add(7.4);
    values.Add(7.9);
    for (int j = 0; j < values.Count; j++)
    {
        var minimo = minimi[j];
        var massimo = massimi[j];
        if (value_in >= minimo && value_in < massimo)
        {
            value_in = values[j];
            break;
        }
    }
    return value_in;
}

大家好。

我必须以最快的方式找到“value_in”介于一个最小值和相对最大值之间以便更改其值。

然后,当一个值不在最小值和相应的最大值之间时,我必须以最快的方式找到最接近的最大值。

例如,如果我打电话

double my_value = valore(4.7);

它返回4.7但我想知道最接近的最大值(4.8)

我不想知道包含该值的列表。 minimi和massimi不会改变,是的,我需要它来做很多事情。我希望在例如4.7超过其最大值时打破迭代,即使它不在最小值和最大值之间。然后我在想如果在列表中插入值,然后对列表进行排序并选择索引会更快......我现在正在使用二进制树来搜索

0 个答案:

没有答案