【发布时间】:2013-04-18 10:04:05
【问题描述】:
我有一个排序方法,我想计算方法所做的移动,但是应该计算的变量不计算任何东西,当我阅读它时我只是得到 0。
//En variabel för att man ska lagra info i den
//Tillfällig lagring.
int temp;
int forflyttningarBubble = 0;
int jamForElse = 0;
//Loopar, loopen är inte mer än storleken på arrayen
for(int i=0;i<allatal.length-1;i++ )
{
//En till loop
for(int j=i+1;j<allatal.length;j++)
{
//Om talet peckaren pekar på större än det andra
//talet så ska programmet
jamForElse++;
if (allatal[i] > allatal[j])
{
forflyttningarBubble++;
forflyttningarBubble++;
forflyttningarBubble++;
//Lagrar värdet array "i" i temp
temp = allatal[i];
//Överför "j" till "i"
allatal[i] = allatal[j];
//temp värdet överförs till "i"
allatal[j] = temp;
forflyttningarBubble++;
}
}
}
statistik BubbleData = new statistik(jamForElse, forflyttningarBubble, allatal);
return BubbleData;'
这是我使用的对象
public class statistik {
public int jamForElse;
public int byten;
public int[] allatal;
public statistik(int jamForElse, int byten, int[] allatal) {
this.byten = byten;
this.allatal = allatal;
this.jamForElse = jamForElse;
}
}
当我尝试将值写入文件时,我得到“0”
//Starttid
long startTime = System.nanoTime();
//Anropar metoden
statistik bubble = bubbleSort(allatal);
//sluttiden
long endTime = System.nanoTime();
//för att få ett svar på tiden
long duration = endTime - startTime;
double seconds1 = (double)duration / 1000000000.0;
//Gör en loop som är lika lång som arrayen
for(int k=0;k<bubble.allatal.length-1;k++){
//Lagrar informationen i filen
out.println(bubble.allatal[k]);
}
//Lagrar tiden också i filen
out.println("BubbleSort (Nano): " + duration);
out.println("Antal Sekunder: " + seconds1);
out.println("Förflyttningar: " + bubble.byten);
out.println("Jämförelser: " + bubble.jamForElse + "\n\n");
System.out.print(bubble.byten); // i get "0"
【问题讨论】:
-
不要使用瑞典语变量名。尝试在代码中的任何地方(字符串除外)使用英语,甚至是 cmets。看起来真的很丑。在 SO 上获得任何帮助都会变得更加困难。
-
哪个变量不改变值?
forflyttningarBubble?你在哪里测试它? -
再次询问,我添加了更多信息。谢谢@maksimov
-
@maba 正如你在 java 中看到的我是初学者,但感谢您的提示!
-
变量
whi sholud count?我不知道如何解释。
标签: java variables object methods