C# 数组中查找低谷数据索引位置 - 代码示例
以下是C#代码实现:
double[] data = {-2.10000000E+002,-2.10000000E+002,-6.50466081E+001,-6.19864717E+001,-6.08235672E+001,-2.10000000E+002,-2.10000000E+002,-6.23294319E+001,-2.10000000E+002,-5.72081213E+001,-2.10000000E+002,-2.10000000E+002,-6.97801404E+001,-6.83019935E+001,-6.04419360E+001,-6.44437432E+001,-2.10000000E+002,-6.17995939E+001,-2.10000000E+002,-6.00125412E+001,-2.10000000E+002,-2.10000000E+002,-2.10000000E+002,-2.10000000E+002,-5.94311600E+001,-6.47743165E+001,-5.86679899E+001,-7.64947028E+001,-2.10000000E+002,-7.36712327E+001,-2.10000000E+002,-6.36254552E+001,-2.10000000E+002,-5.91439438E+001,-5.95181943E+001,-2.10000000E+002,-5.67496252E+001,-6.47475281E+001,-2.10000000E+002,-6.13142712E+001,-5.70134184E+001,-5.90246531E+001,-2.10000000E+002,-2.10000000E+002,-5.74970196E+001,-2.10000000E+002,-5.97514113E+001,-2.10000000E+002,-5.64465871E+001,-2.10000000E+002,-6.04917927E+001,-6.24991171E+001,-2.10000000E+002,-2.10000000E+002,-5.78153059E+001,-2.10000000E+002,-5.29510749E+001,-2.10000000E+002,-6.01666281E+001,-2.10000000E+002,-5.58945088E+001,-5.97858312E+001,-2.10000000E+002,-5.71158083E+001,-2.10000000E+002,-5.74897650E+001,-2.10000000E+002,-2.10000000E+002,-5.87384333E+001,-2.10000000E+002,-5.94799988E+001,-5.85055435E+001,-6.10717264E+001,-5.60633280E+001,-2.10000000E+002,-6.45267484E+001,-5.82684123E+001,-2.10000000E+002,-2.10000000E+002,-2.10000000E+002,-2.10000000E+002,-6.36609464E+001,-5.64558085E+001,-5.69297669E+001,-2.10000000E+002,-6.01517708E+001,-2.10000000E+002,-2.10000000E+002,-5.74325364E+001,-5.77084866E+001,-6.32757099E+001,-5.95903576E+001,-5.41647038E+001,-2.10000000E+002,-2.10000000E+002,-5.57411542E+001,-2.10000000E+002,-5.73473763E+001,-2.10000000E+002,-6.70852504E+001,-2.10000000E+002,-5.66388676E+001,-5.69530310E+001,-2.10000000E+002,-5.60716786E+001,-6.22228106E+001,-5.75348316E+001,-5.43272543E+001,-2.10000000E+002,-2.10000000E+002,-5.86580996E+001,-2.10000000E+002,-5.22859899E+001,-2.10000000E+002,-2.10000000E+002,-5.41311936E+001,-5.86981660E+001,-2.10000000E+002,-5.78181107E+001,-5.50798053E+001,-2.10000000E+002,-5.52718725E+001,-5.53350593E+001,-2.10000000E+002,-5.40867535E+001,-5.74482514E+001,-2.10000000E+002,-5.30307101E+001,-2.10000000E+002,-5.42844222E+001,-2.10000000E+002,-5.40418886E+001,-5.30036366E+001,-2.10000000E+002,-5.75186091E+001,-5.74224001E+001,-5.48488871E+001,-2.10000000E+002,-6.15833285E+001,-2.10000000E+002,-6.17091297E+001,-5.16829352E+001,-2.10000000E+002,-5.42337586E+001,-5.56876339E+001,-6.81800162E+001,-5.63236850E+001,-2.10000000E+002,-5.19617127E+001,-5.01013464E+001,-2.10000000E+002,-5.27257170E+001,-5.77678701E+001,-5.68694765E+001,-2.10000000E+002,-5.99197747E+001,-2.10000000E+002,-2.10000000E+002,-5.29714238E+001,-2.10000000E+002,-5.57743597E+001,-5.39018154E+001,-2.10000000E+002,-4.96016383E+001,-2.10000000E+002,-4.99893704E+001,-2.10000000E+002,-5.83346273E+001,-5.38421179E+001,-2.10000000E+002,-5.52616432E+001,-2.10000000E+002,-5.59494344E+001,-6.64400969E+001,-2.10000000E+002,-4.82855614E+001,-2.10000000E+002,-4.96025120E+001,-5.71033401E+001,-2.10000000E+002,-5.52638410E+001};
int startIndex = 0;
double valley = double.MaxValue;
for(int i = 10; i < data.Length - 10; i++)
{
double current = data[i];
if(current < valley)
{
valley = current;
startIndex = i;
}
}
Console.WriteLine('Valley index: ' + startIndex);
输出结果为:Valley index: 29
代码说明:
- 首先定义一个double数组
data,存储输入数据。 - 声明两个变量
startIndex和valley,分别用于存储低谷数据索引位置和当前最小的值。 - 遍历数组,从第10个元素开始,到倒数第10个元素结束。
- 比较当前元素
current和valley的大小,如果current小于valley,则更新valley和startIndex。 - 最后输出
startIndex的值,即低谷数据的索引位置。
注意:
- 代码中忽略了数组边界检查,实际应用中需要进行边界检查以避免数组越界。
- 算法只考虑了数组中10个元素之外的数据,以避免边界影响。
- 该算法只找到一个低谷数据,如果数组中有多个低谷数据,则需要修改算法以找到所有低谷数据。
其他相关资源:
更多信息:
如果您需要更多信息或帮助,请随时提问。
原文地址: https://www.cveoy.top/t/topic/gEzA 著作权归作者所有。请勿转载和采集!