Tag: 排序

在Java中对LinkedHashMap进行排序

我想按值对HashMap进行排序。 我目前正在使用以下代码 public static Map sortByValue(Map unsorted_map){ Map sorted_map = new LinkedHashMap(); try{ // 1. Convert Map to List of Map List<Map.Entry> list = new LinkedList<Map.Entry>(unsorted_map.entrySet()); // 2. Sort list with Collections.sort(), provide a custom Comparator Collections.sort(list, new Comparator<Map.Entry>() { public int compare(Map.Entry o1, Map.Entry o2) { return (o1.getValue()).compareTo(o2.getValue()); } }); // 3. Loop the […]

我的荷兰国旗算法出了什么问题?

我试图像这样转一个数组: 0, 1, 2, 2, 1, 0, 1, 0, 0, 1, 2 进入这个: 0 0 0 0 1 1 1 1 2 2 2 这是我的代码: public static int[] sortDNF(int[] tape) { int smaller = 0; // everything with index bigger is 2 int current = 0; // where we are looking now int tmp; while […]

使用compareTo方法和数组按名称和测试分数对学生进行排序

我需要使用类似的interfact和compareTo方法按字母顺序对学生列表进行排序,然后按测试分数排序。 我正在努力让这个在我的应用程序中工作。 需要从文本文件中读取名称列表。 我不知道我的教授使用的文本文件中会有多少名称,除了它将小于100.我还应该在底部显示成绩的平均值以及在任何旁边写一条消息比平均水平低15分的学生。 我还没有真正了解写作消息部分,因为我目前仍然坚持要打印和排序的名称和分数。 文本文件应如下所示: Steelman Andrea 95 Murach Joel 98 Lowe Doug 82 Murach Mike 93 这就是我到目前为止……如果有人能给我一点方向,我会很感激。 谢谢。 package chapt11; import java.io.FileReader; import java.util.Arrays; importjava.util.Scanner; public class CH11AS8App { /** * @param args */ public static void main(String[] args) throws Exception { System.out.println(“Welcome to the Student Scores Application.”); System.out.println(); Scanner aScanner = new […]

如何在Spring Boot 1.4中的http请求中为排序参数设置IgnoreCase

我有一个Spring Boot后端运行并接受HTTP请求。 示例: http : //www.myserver.com/devices/ 我正在使用Pageable来处理请求和自动分页和排序,因此我可以使用以下请求: http ://www.myserver.com/devices?sort = name,desc 然而,存在一个问题,即如果区分大小写,则不能获得所需的排序结果(不区分大小写的排序)。 我知道Pageable Sort接受sort属性的两个参数,即sort = name,desc但是在检查调试器时我可以看到pageable的sort orders对象包含ignoreCase属性。 以下是通过REST调用的方法的代码片段: public class DeviceController { @Autowired DeviceViewRepository deviceViewRepository; @RequestMapping(method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) public Page getAllDevices(@PageableDefault(page = 0, size = 10, sort= “id”) Pageable pageable) { try { return deviceViewRepository.findAll(pageable); } catch (Exception e){ throw e; } […]

Java中的递归Quicksort的分区实现不起作用

写了这个递归快速排序算法的Java实现,并且似乎出错了,因为我尝试排序的数组几乎完全排序,除了应该切换的两个元素(靠近数组的中间)。 我想要排序的整数数组是:4,77,98,30,20,50,77,22,49,2(10个元素)。 这是我的代码: public static void quickSort(int[] array, int start, int end) { if (start < end) { int partition = partition(array, start, end); quickSort(array, start, partition – 1); quickSort(array, partition + 1, end); } } public static int partition(int[] array, int left, int right) { int pivotValue = array[(left + right) / 2]; //Value […]

如何使用Object参数对Arraylist中的对象进行排序

我在排序Arraylist中的对象时遇到问题,因为我是排序对象的新手。 对arraylist进行排序是非常基本的,但是对对象的arraylist进行排序是完全不同的事情。 基本上我一直在堆栈溢出代码,人们似乎使用比较器来解决他们的问题,但他们没有解释如何实际调用该方法并将其投入使用,这就是我在这里的原因。 使用下面的代码,我试图用参数 – 字符串名称,int年龄和字符串课程对学生的arraylist进行排序。 然后我有另一个类来存储Student对象并在类中对它们进行排序。 这是我有的: Student.java public class Student { private String name, course; private int age; public Student(String name, int age, String course) { this.name = name; this.age = age; this.course = course; } public String getName() { return name; } public int getAge() { return age; } public String getCourse() […]

如何将有序的整数列表划分为大小均匀的子列表?

有没有人有一个很好的算法来获取整数的有序列表,即: [1,3,6,7,8,10,11,13,14,17,19,23,25,27,28] 在给定数量的均匀大小的有序子列表中,即对于4,它将是: [1,3,6] [7,8,10,11] [13,14,17,19] [23,25,27,28] 要求是每个子列表都是有序的并且尺寸尽可能相似。

如何对包含数字的String集合进行排序?

我有一个包含这样的数据的字符串向量: 5:34,5:38,17:21,22:11,…… 如果我尝试使用Collections.sort(…)合并它; 它会显示如下: 17:21,22:11,5:34,5:38 其实我希望它看起来像这样: 5:34,5:38,17:21,22:11 所以我想根据冒号“:”之前的数字对元素进行排序,然后如果某些元素在“:”之前具有相同的数字,则根据“:”之后的数字对它们进行排序。 最简单的方法是什么?

合并排序Java

我正在尝试创建一个合并排序方法,但它继续给出错误的排序。 我在哪里进行更改以使其实际排序数组? 代码的哪一部分必须不同? 感谢您的时间。 public static void mergeSort(int[] array, int left, int lHigh, int right, int rHigh) { int elements = (rHigh – lHigh +1) ; int[] temp = new int[elements]; int num = left; while ((left <= lHigh) && (right <= rHigh)){ if (a[left] <= array[right]) { temp[num] = array[left]; left++; } else { […]

Yaroslavskiy的双枢轴快速排序算法

我正在研究我在这里找到的双枢轴快速排序(幻灯片中的第20页) 比较: Yaroslavskiy平均需要= 1.9 n nn。 Classic Quicksort需要= 2 n n n n n比较! 互换: Yaroslavskiy算法的互换= 0.6 n nn 经典Quicksort的掉期= 0.3 n nn 结果 数据类型—– comp ——- swap int ————- 591ns ——— 802ns 浮———– ———- 838ns 873ns 双——- 873ns ———- 1047ns char ———- 593ns ———– 837ns / *注意: – 上面的结果是纳秒,并使用intel core 2 duo * /在java […]