`
53873039oycg
  • 浏览: 844059 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

[代码片段]数组统计段内数量

    博客分类:
  • java
 
阅读更多
/**
	 * @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);

 

    结果:

   

<0--=2
[0-1)--=8
[1-6)--=3
[6-16)--=6
[16-36)--=4
[36-56)--=4
[56-66)--=6
[66-101]--=6

 

分享到:
评论

相关推荐

    C#源代码-求数组的最大值.zip

    以下是一个典型的求解数组最大值的C#代码片段: ```csharp using System; class Program { static void Main() { // 声明并初始化一个整型数组 int[] numbers = { 3, 7, 2, 9, 1, 5, 8 }; // 假设数组的第一...

    创建一个控制台应用程序,利用数组统计全班学生成绩等级,要求分为A、B、C、D四档,统计后输出每档学生的人数。

    在实际的`ConsoleApplication1`项目中,你需要将这些代码片段整合到一个名为`Program.cs`的源文件中,并确保正确地导入了`System`命名空间。运行程序后,它会根据输入的学生成绩数组,自动统计每个等级的学生人数并...

    el+json+代码片段+分页

    结合这些信息,我们可以假设这是一个关于如何在Elasticsearch查询中使用JSON进行分页的代码片段。以下是一个简单的示例: ```json { "size": 10, // 每页大小 "from": 10, // 从第几条开始 "query": { /* 查询...

    C语言100个经典代码。c

    从给定的C语言代码片段中,我们可以提炼出多个经典的编程知识点,这些代码涉及数组处理、函数设计、条件语句、循环结构以及字符处理等核心概念。下面将逐一解析每个代码段背后的编程知识。 ### 1. 数组元素筛选与...

    职工工作量统计系统设计源代码

    以上代码片段展示了如何通过用户交互来实现系统的不同功能。其中,`main`函数负责处理用户的输入并调用相应的功能。例如,当用户选择“录入职工”时,系统会提示用户输入职工的名字和完成的产品数量,并将其保存在...

    计算机精讲多练c++源代码

    第6个代码片段展示了如何读取用户输入的字符串,并遍历检查每个字符是否为数字字符,从而统计字符串中数字字符的数量。 ### 5. 复杂逻辑与算法设计 第5个代码片段涉及了复杂的逻辑判断,通过嵌套的循环结构和条件...

    一维数组实验报告.docx

    **示例代码片段:** ```c #include int main() { int count[101] = {0}; // 初始化所有元素为0 int num; printf("请输入1-100之间的整数(以0结束): "); scanf("%d", &num); while (num != 0) { if (num &gt;=...

    C语言实现统计文章的单词数目(实验报告+源代码)

    在给出的代码片段中,可以看到一个简单的示例文本被硬编码在 `main` 函数中,而不是从文件中读取。在实际应用中,应该将读取文件的逻辑添加到程序中,以便处理任意大小的文本文件。 五、优化与扩展 本实验可以...

    c语音代码++A

    第二个代码片段的主要任务是从一个包含 200 个四位数的数组中筛选出所有各位数字均为偶数的四位数,并将其按照从大到小的顺序存储到数组 `b` 中。这里的关键点包括: - **条件判断**:通过判断四位数的每一位是否为 ...

    统计单词在文章中出现频率

    在实际编程中,你可能会使用到如下的C++代码片段: ```cpp #include #include #include #include #include #include // 主函数 int main() { std::ifstream inputFile("input.txt"); std::ofstream output...

    echarts柱状图统计表代码.zip

    在`jiaoben5694.js`(可能的脚本文件名,未提供完整扩展名)中,我们可能会看到类似以下的代码片段: ```javascript var myChart = echarts.init(document.getElementById('main')); var option = { title: { ...

    VB中字符次数统计以及最后一次以该长度出现的字符

    代码片段1中使用了嵌套循环,外层循环遍历字符串中的每个字符,而内层循环则根据字符的ASCII值确定它属于哪个类别,并在相应的位置上对计数进行累加。这种方法不仅能够统计特定字符的出现次数,还能统计大写字母、...

    10个实用的PHP代码片段

    接下来,我们将详细解析每个代码片段的作用。 1. **关键词高亮**: 这段代码定义了一个名为`highlight`的函数,它的作用是接收一个字符串`sString`和一个关键词数组$aWords`,然后将字符串中出现的关键词用黄色...

    java代码-1.定义一个一维数组,求出数组的最大值,最小值,平均值。

    结合以上代码片段,我们可以编写一个完整的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 统计日志信息

    以上代码片段展示了如何使用Perl对日志文件进行基本分析。如果"CountLines.pm"包含自定义的统计方法,我们可以调用这些方法以进行更复杂的分析。 总之,使用Perl处理日志信息是一个强大的工具,能够帮助IT专业人员...

    DSP图像处理直方图统计

    接下来,我们将对给出的代码片段进行详细解析,以理解其如何实现直方图统计的功能。 **1. 初始化函数** `ICETEKDM642PCIBoardInit()` 该函数主要负责初始化直方图相关的数据结构,包括: - 定义数组`nMemTemp`用于...

    c++麻将源代码.pdf

    在这些代码片段中,我们看到了如何初始化、访问、修改数组元素以及遍历数组。 以上就是从提供的代码中提炼出的C++编程基础知识点。理解并掌握这些概念对于编写和调试C++程序至关重要。在实际项目中,如麻将游戏的...

    ArcScene+AE+分段统计栅格数据.pdf

    在给定的代码片段中,首先通过 `ILayer` 接口获取到场景中的第一个图层 (`pLayer`),然后将其转换为 `IRasterLayer` 类型以访问栅格数据。这一步骤是处理栅格数据的基础。 #### 创建栅格游标 `IRasterCursor` 接口...

Global site tag (gtag.js) - Google Analytics