Tag: mergesort

Java MergeSort – 内存不足错误:Java堆空间

我正在尝试使用Java进行排序。 我现在正在进行合并排序… Eclipse正在输出Out Of Memory Error: Java Heap space ,但我不知道如何调试它。 我觉得我的代码还可以 – 有什么想法吗? import java.util.ArrayList; import java.util.List; public class Sorts { List initialList; public Sorts() { initialList = new ArrayList(); initialList.add(2); initialList.add(5); initialList.add(9); initialList.add(3); initialList.add(6); System.out.print(“List: [“); for (int values : initialList) { System.out.print(values); } System.out.println(“]”); splitList(initialList); } public List splitList(List splitMe) { List left […]

‘MergeSort算法’ – JAVA中更好的实现是什么?

我知道快速排序算法,但我只关心合并排序算法。 我在互联网上发现了两种类型的合并排序算法实现。 但是当我将它们与插入算法进行比较时,它们似乎效率较低,而且对于大量项目而言并不是这样。 Enter the number of elements you want to sort: 300000 Time spent to executing BubbleSort: 362123 milliseconds Time spent to executing Selection: 108285 milliseconds Time spent to executing Insertion: 18046 milliseconds Time spent to executing MergeSort: 35968 milliseconds Time spent to executing MergeSort2: 35823 milliseconds 是否有另一种方法来实现合并排序算法,使其比插入算法更有效? 看看我的代码…… package br.com.test.test1; import java.util.Random; import […]

在Java中的Mergesort

我是Java新手,并尝试在Java中实现mergesort。 但是,即使多次运行程序,而不是所需的排序输出,我得到相同的用户输入作为输出。 如果有人能帮助我理解这种意想不到的行为,我将感激不尽。 import java.io.*; import java.util.Arrays; public class MergeSort { public static void main(String[] args) throws IOException{ BufferedReader R = new BufferedReader(new InputStreamReader(System.in)); int arraySize = Integer.parseInt(R.readLine()); int[] inputArray = new int[arraySize]; for (int i = 0; i < arraySize; i++) { inputArray[i] = Integer.parseInt(R.readLine()); } mergeSort(inputArray); for (int j = 0; j 1) […]

Java Collections.sort(节点)使用什么类型?

我认为它是MergeSort,它是O(n log n)。 但是,以下输出不同意: -1,0000000099000391,0000000099000427 1,0000000099000427,0000000099000346 5,0000000099000391,0000000099000346 1,0000000099000427,0000000099000345 5,0000000099000391,0000000099000345 1,0000000099000346,0000000099000345 我按序列号排序了4个节点的节点列表,排序正在进行6次比较。 我很困惑,因为6>(4 log(4))。 谁可以给我解释一下这个? PS这是mergesort,但我仍然不理解我的结果。 谢谢大家的答案。 谢谢汤姆纠正我的数学。