/** * @Description: 统计以split分割scores数量 * @param scores * @param split:分割段,>0,[60,10,20,10]-->分割为[0-59,60-69,70-89,90-100],统计段内数量 * @return: void */ public void analyseData(double[] scores,int[] split){ Arrays.sort(scores); Map<String,Integer> numMap=new LinkedHashMap<String,Integer>(); int[] splitScore=new int[split.length]; splitScore[0]=split[0]; int lastValue = 0,index=0; index = Arrays.binarySearch(scores, splitScore[0]); if (index > 0) { //是否有重复值 for(int i=index-1;i>=0;i--){ if(scores[i]==splitScore[0]){ index--; }else{ break; } } if(index>0){ numMap.put(String.format("<%s",splitScore[0]),index - lastValue); lastValue=index; } } for(int i=1,len=split.length;i<len;i++){ splitScore[i]=splitScore[i-1]+split[i]; index=Arrays.binarySearch(scores, splitScore[i]); if(index<0){ index=Math.abs(index+1); }else{ //是否有重复值 for(int j=index-1;j>=0;j--){ if(scores[j]==splitScore[i]){ index--; }else{ break; } } } //存在大于指定值情况时,最大值累计在最后一段 if(i==len-1){ index=Math.max(scores.length, index); numMap.put(String.format("[%s-%s]", splitScore[i-1],splitScore[i]),index-lastValue); }else{ numMap.put(String.format("[%s-%s)", splitScore[i-1],splitScore[i]),index-lastValue); lastValue=index; } } for (Entry<String, Integer> entry: numMap.entrySet()) { System.out.println(entry.getKey()+"--="+entry.getValue()); } }
测试:
double []array4={-0.1,-0.1,0,0,0,0,0.1,0.1,0.1,0.5,5,5,5,10,11,12,15,15,15,34,34,35,35,54,54,55,55,64,64,65,65,64,65,66,66,100,101,101,110}; int[] split={0,1,5,10,20,20,10,35}; t.analyseData(array4, split);
结果:
相关推荐
以下是一个典型的求解数组最大值的C#代码片段: ```csharp using System; class Program { static void Main() { // 声明并初始化一个整型数组 int[] numbers = { 3, 7, 2, 9, 1, 5, 8 }; // 假设数组的第一...
在实际的`ConsoleApplication1`项目中,你需要将这些代码片段整合到一个名为`Program.cs`的源文件中,并确保正确地导入了`System`命名空间。运行程序后,它会根据输入的学生成绩数组,自动统计每个等级的学生人数并...
结合这些信息,我们可以假设这是一个关于如何在Elasticsearch查询中使用JSON进行分页的代码片段。以下是一个简单的示例: ```json { "size": 10, // 每页大小 "from": 10, // 从第几条开始 "query": { /* 查询...
从给定的C语言代码片段中,我们可以提炼出多个经典的编程知识点,这些代码涉及数组处理、函数设计、条件语句、循环结构以及字符处理等核心概念。下面将逐一解析每个代码段背后的编程知识。 ### 1. 数组元素筛选与...
以上代码片段展示了如何通过用户交互来实现系统的不同功能。其中,`main`函数负责处理用户的输入并调用相应的功能。例如,当用户选择“录入职工”时,系统会提示用户输入职工的名字和完成的产品数量,并将其保存在...
第6个代码片段展示了如何读取用户输入的字符串,并遍历检查每个字符是否为数字字符,从而统计字符串中数字字符的数量。 ### 5. 复杂逻辑与算法设计 第5个代码片段涉及了复杂的逻辑判断,通过嵌套的循环结构和条件...
代码片段1使用了两个循环,外层循环遍历字符串的每个字符,内层循环根据字符的ASCII码将其归类到数组a中。如果字符是大写字母(ASCII码65-90)或小写字母(ASCII码97-122),则增加对应数组元素的计数。接着,通过...
**示例代码片段:** ```c #include int main() { int count[101] = {0}; // 初始化所有元素为0 int num; printf("请输入1-100之间的整数(以0结束): "); scanf("%d", &num); while (num != 0) { if (num >=...
- `hopyt()`、`hopym()`、`hopyf()`:这些函数可能是用来处理运动会的具体逻辑,但由于代码片段不完整,无法给出详细解释。 3. **主函数逻辑**: - 初始化:清空所有相关的数据结构。 - 主菜单:提供五个选项供...
在给出的代码片段中,可以看到一个简单的示例文本被硬编码在 `main` 函数中,而不是从文件中读取。在实际应用中,应该将读取文件的逻辑添加到程序中,以便处理任意大小的文本文件。 五、优化与扩展 本实验可以...
第二个代码片段的主要任务是从一个包含 200 个四位数的数组中筛选出所有各位数字均为偶数的四位数,并将其按照从大到小的顺序存储到数组 `b` 中。这里的关键点包括: - **条件判断**:通过判断四位数的每一位是否为 ...
在实际编程中,你可能会使用到如下的C++代码片段: ```cpp #include #include #include #include #include #include // 主函数 int main() { std::ifstream inputFile("input.txt"); std::ofstream output...
在`jiaoben5694.js`(可能的脚本文件名,未提供完整扩展名)中,我们可能会看到类似以下的代码片段: ```javascript var myChart = echarts.init(document.getElementById('main')); var option = { title: { ...
接下来,我们将详细解析每个代码片段的作用。 1. **关键词高亮**: 这段代码定义了一个名为`highlight`的函数,它的作用是接收一个字符串`sString`和一个关键词数组$aWords`,然后将字符串中出现的关键词用黄色...
结合以上代码片段,我们可以编写一个完整的Java程序,如下所示: ```java public class Main { public static void main(String[] args) { int[] numbers = {1, 5, 3, 9, 2, 7, 4}; int max = numbers[0]; ...
以上代码片段展示了如何使用Perl对日志文件进行基本分析。如果"CountLines.pm"包含自定义的统计方法,我们可以调用这些方法以进行更复杂的分析。 总之,使用Perl处理日志信息是一个强大的工具,能够帮助IT专业人员...
接下来,我们将对给出的代码片段进行详细解析,以理解其如何实现直方图统计的功能。 **1. 初始化函数** `ICETEKDM642PCIBoardInit()` 该函数主要负责初始化直方图相关的数据结构,包括: - 定义数组`nMemTemp`用于...
在这些代码片段中,我们看到了如何初始化、访问、修改数组元素以及遍历数组。 以上就是从提供的代码中提炼出的C++编程基础知识点。理解并掌握这些概念对于编写和调试C++程序至关重要。在实际项目中,如麻将游戏的...
在给定的代码片段中,首先通过 `ILayer` 接口获取到场景中的第一个图层 (`pLayer`),然后将其转换为 `IRasterLayer` 类型以访问栅格数据。这一步骤是处理栅格数据的基础。 #### 创建栅格游标 `IRasterCursor` 接口...