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

[代码片段]排序相关

    博客分类:
  • java
 
阅读更多

       

public void scoreRank() {
		Double[] scoreArr = new Double[9];
		scoreArr[2] = scoreArr[4] = 66.5;
		scoreArr[0] = scoreArr[5] = 67d;
		scoreArr[1] = scoreArr[3] = scoreArr[6] = 66.4;
		scoreArr[7] = 68d;
		scoreArr[8] = 66.2;
		List<Double> doubleList = Arrays.asList(scoreArr);
		List<Integer> rankList = new ArrayList<Integer>();
		Collections.sort(doubleList, new Comparator<Double>() {
			public int compare(Double arg0, Double arg1) {
				return arg1.compareTo(arg0);// 降序排列
			}
		});
		for (Double double2 : doubleList) {
			System.out.print(double2 + "\t");
		}
		System.out.println();
		// 计算rank
		int rank = 0;
		// 前一个分数,初始化为一个很大的值
		double lastScore = Integer.MAX_VALUE;
		int nOrder = 1; // 并列名次的个数
		for (Double double2 : doubleList) {
			if (lastScore != double2) {
				// 当前分数和前一个分数不相等时求出名次:(上一个名次加上并列名次),否则认为是并列名次
				rank = rank + nOrder;
				lastScore = double2;
				nOrder = 1;
			} else {
				nOrder = nOrder + 1;
			}
			rankList.add(rank);
		}
		for (Integer rank2 : rankList) {
			System.out.print(rank2 + "\t");
		}
		System.out.println();
	}

   结果为:

   

68.0	67.0	67.0	66.5	66.5	66.4	66.4	66.4	66.2	
1	2	2	4	4	6	6	6	9

 

 

 

分享到:
评论

相关推荐

    计数排序(代码片段)

    计数排序(代码片段)

    代码片段(快速排序)

    代码片段(快速排序)

    归并排序(代码片段)

    归并排序(代码片段)

    vs2008代码片段管理器(源码)

    《Visual Studio 2008 代码片段管理器:源码解析与自定义指南》 在软件开发过程中,代码重用是提高效率的关键。Visual Studio 2008(VS2008)中的代码片段管理器是一个强大的工具,它允许开发者快速插入预先定义好...

    精选的 PHP 代码片段和学习资料可以让你在 30 秒内学会

    精选的 PHP 代码片段可以让您在30秒内快速学习和了解 PHP 编程。这些精彩的片段涵盖了各种主题,从字符串操作到数组处理,再到文件操作和数据库连接,无所不包。只需阅读简短的代码示例,您就能快速掌握 PHP 的基础...

    堆排序(代码片段utf-8编码)

    堆排序(代码片段utf-8编码)

    Visual Studio 2005 C# 代码片段大全

    8. **常用算法**:在开发过程中,可能会遇到排序、查找、图算法等问题,代码片段可能提供了这些常见算法的C#实现,如快速排序、二分查找、深度优先搜索等。 9. **设计模式**:设计模式是软件工程的最佳实践,代码...

    希尔排序的代码

    ### 希尔排序算法详解 #### 算法概述 希尔排序(Shell Sort),又称为缩小增量排序,是插入排序的一种更高效...以上代码片段清晰地展示了希尔排序在C++中的实现细节,对于理解和学习希尔排序算法具有很高的参考价值。

    直接插入排序代码

    在给定的代码片段中,我们可以看到直接插入排序算法的具体实现。首先,定义了一个包含整数的数组`a`,这个数组包含了待排序的数据。然后,通过一个外层循环控制排序的轮次,内层循环则负责比较和数据移动。 #### ...

    归并排序的代码

    根据提供的代码片段,我们可以深入分析归并排序的具体实现细节。 ##### 1. 合并函数 `Mege` ```c void Mege(int a[], int left, int middle, int right) { int b[100]; int i = left, j = middle + 1, k = left; ...

    jquery实用代码片段集合

    该代码片段首先将所有列表项转换为数组,然后进行排序,并最终将排序后的元素重新添加到列表中。 #### 绑定右键菜单事件 通过绑定contextmenu事件,可以在用户尝试打开上下文菜单时拦截此行为。 ```javascript $...

    排序算法全集锦(java代码实现)

    根据提供的部分代码片段,我们可以看到一个名为`Sorts`的类,其中包含了不同的排序方法。例如,`quickSort`方法用于执行快速排序,而在主方法`main`中,创建了`Sorts`对象,并调用了`quickSort`方法对数组`L2`进行...

    堆排序代码

    根据给定的代码片段,我们可以详细地分析其各个部分: ```java public class Four { int[] a = {49, 38, 65, 97, 76, 13, 27, 49, 78, 34, 12, 64, 5, 4, 62, 99, 98, 54, 56, 17, 18, 23, 34, 15, 35, 25, 53, 51...

    内部排序汇总(代码)

    由于提供的代码片段不完整,这里给出一个完整的归并排序示例: ```c void merge(int array[], int p, int q, int r) { int i, k = 0, begin1 = p, end1 = q, begin2 = q + 1, end2 = r, *temp; temp = (int *) ...

    并行环境下快速排序函数代码

    - 在给出的代码片段中,`template, typename Comparator&gt;` 表示这是一个模板函数,能够处理任意随机访问迭代器类型的容器以及任意比较器类型。这种设计方式提高了函数的通用性。 #### 2. **并行排序主函数** `...

    表格列自由拖动排序js代码

    在实际应用中,开发者可以将这些代码片段整合到自己的项目中,通过调整CSS样式适应不同的设计需求,或者对JavaScript代码进行优化以处理更复杂的表格和更大的数据量。总的来说,这个代码示例为开发者提供了一个基础...

    直接插入,冒泡,快速,直接选择,堆,希尔 排序c代码

    在给定的代码片段中,`InsertSort` 函数实现了直接插入排序。具体实现步骤如下: - 遍历数组中的每一个元素(除了第一个元素)。 - 将当前元素与已排序的元素进行比较,并将较大的元素向后移动。 - 当找到一个比...

    拓扑排序源代码

    根据给定的文件信息,我们将深入探讨拓扑排序的概念、实现以及C语言代码解析,同时对部分代码片段进行分析。 ### 拓扑排序概念 拓扑排序是针对有向无环图(DAG)的一种排序算法。在图中,如果存在一条从顶点A到...

    冒泡排序实现代码

    根据提供的代码片段,我们可以看到一个典型的冒泡排序算法的实现方式: ```java int[] array = new int[/* 数组长度 */]; int temp = 0; for (int i = 0; i ; i++) { for (int j = i + 1; j ; j++) { if (array[j...

Global site tag (gtag.js) - Google Analytics