- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在向控制台打印 2 行。他们都打印,但是当第二个打印时,第一个变成第二个,所以这两行是相同的。我以前从未遇到过这种情况。为什么第二个打印会覆盖第一个,我该如何解决?
public static void main(String args[]){
new MergeSort(90000);
System.out.println("Array to be mergesorted: " +Arrays.toString(array));
long start = System.currentTimeMillis();
mergeSort(array, 1, array.length);
long end = System.currentTimeMillis();
System.out.println("Result: " + Arrays.toString(array) );
}
构造函数:
public MergeSort(int n){
Random rand = new Random();
array = new int[n];
for(int i = 0; i <array.length; i++){
array[i] = rand.nextInt(101);
}
}
其余代码:
public static void merge(int[] A, int p, int q, int r){
//
//length of subarray 1
int n1 = q-p+1;
//length of subarray 2
int n2 = r-q;
int[] L = new int[n1+1];
int[] R = new int[n2+1];
for(int i = 0; i < n1; i++){
L[i] = A[p+i-1];
}
for(int j=0; j< n2; j++){
R[j] = A[q+j];
}
L[n1] = Integer.MAX_VALUE;
R[n2] = Integer.MAX_VALUE;
int i = 0;
int j = 0;
for(int k = p-1; k < r; k++){
if(L[i] <= R[j]){
A[k] = L[i];
i++;
}
else{
A[k] = R[j];
j++;
}
}
}
public static void mergeSort(int[] A, int p, int r){
if (p<r){
int q = (int) Math.floor((r+p)/2);
mergeSort(A, p, q);
mergeSort(A, q+1, r);
merge(A, p, q, r);
}
}
最佳答案
这是由于您的 IDE 中控制台的缓冲区限制。我无法解释为什么您会看到某些字符串的重复输出,只能说它看起来像是在达到限制时如何清除缓冲区中的旧字符的错误。
我认为 Eclipse 的控制台输出默认有 80,000 个字符的限制。由于您两次打印 1-100 之间的 90,000 个数字,这意味着您超出了这个缓冲区,然后是一些缓冲区。
增加控制台上的缓冲区限制:
理想情况下,将其更改为高于您为此程序打印出的最大字符数。也许大约 800,000?
编辑:这个问题让我想起了another interesting question其中问题的答案在于如何在终端输出中执行换行。与这个问题并不完全相同,但它是相关的并且是一个非常有趣的问题/答案。它值得一读,并且绝对可以从中吸取教训。
关于java - 系统输出println,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35835714/
我都见过,事实上,在观察后我并没有意识到有什么区别。但两者之间真的有什么区别 println(); // without quotation marks 和 println(""); // wi
当运行这个 java 程序时,我希望输出只是第一个 println,因为其他方法,quaffle 和 snitch 只返回整数。但是,该程序的输出还包括 quaffle 和 snitch 方法的 pr
我开始学习 jsp 并且我看到,如果我们想在 jsp 中打印一些东西,我们必须编写 out.println() 而不是 System.out.println() ,但是如果我们编写 System.ou
我刚刚写了这段代码: public class T { public String toString() { System.out.println("new line");
我一直在研究 Swift,刚刚遇到了一个问题。我有以下词典: var locations:Dictionary = ["current":CLLocationCoordinate2D(latitude
我有这个代码: System.err.print("number of terms = "); System.out.println(allTerms.size()); System.err
我一直在研究 Swift,刚刚遇到了一个问题。我有以下词典: var locations:Dictionary = ["current":CLLocationCoordinate2D(latitude
我无法解释竞争检测器中 println 和 fmt.Println 的不同输出。我希望两者都是种族,或者至少两者都不是种族。 package main var a int func f() {
我一直以为Predef.println只是 System.out.println 的快捷方式,但显然我错了,因为它似乎没有使用 System.out根本不。为什么会这样?我该如何“重定向” Syste
我有一个字符串数组: val str:Array[String] = Array("aa","bb") scala> str.foreach(println) // works aa bb scala
这个问题已经有答案了: Move console cursor to specified position (4 个回答) 已关闭 7 年前。 我正在使用简单的 println 行在 java 上工作
这是我现在正在做的一个简单测试用例的代码: private static final ByteArrayOutputStream OUTCONTENT = new ByteArrayOutputStr
public static void algorithmOne(int n){ long startTime = System.currentTimeMillis(); sea
我有以下代码: @Test public void testMultipleUpdatesSameTime() { final CyclicBarrier gate = new Cyc
我正在尝试创建一个可打印的命令提示板,以便在 CMD 中创建一个 TicTacToe 游戏。虽然,当我为我的董事会和我的单元格创建类(class)时,Java 在我的 print 和 println
我有 char c1 = 'S'; // S as a character char c2 = '\u0068'; // h in Unicode char c3 = 0
这是我的代码(golang) func main() { names := []string{"1", "2", "3"} for index, name := range names
来自 log.go (日志包的实现): 167 // Println calls l.Output to print to the logger. 168 // Arguments are handl
为什么我需要使用 System.out.println而不是 println当我使用 GroovyInterceptable ? 例如,如果我在 Groovy 文件中编码,我可以通过键入以下内容打印到
当我编写计算器应用程序时,我只是想不出最好的方法是什么: private void calculate(String command) { System.out.print("value1:
我是一名优秀的程序员,十分优秀!