java中使用布尔值的气泡弹出。 import java.util.*; 公共课泡沫 { 公共静态void main(字符串[]args) { int Bub[]=新int[6]; 随机随机数=新随机数(); 布尔完成=假; 对于(int x=0;x
而言,问题在于切换算法。您要分配两次临时值java中使用布尔值的气泡弹出。 import java.util.*; 公共课泡沫 { 公共静态void main(字符串[]args) { int Bub[]=新int[6]; 随机随机数=新随机数(); 布尔完成=假; 对于(int x=0;x,java,for-loop,while-loop,boolean,bubble-sort,Java,For Loop,While Loop,Boolean,Bubble Sort,而言,问题在于切换算法。您要分配两次临时值 import java.util.*; public class Zhangbubble { public static void main (String[] args) { int Bub[] = new int[6]; Random randy = new Random(); boolean Done = false; for (int x=0; x<6; x
import java.util.*;
public class Zhangbubble
{
public static void main (String[] args)
{
int Bub[] = new int[6];
Random randy = new Random();
boolean Done = false;
for (int x=0; x<6; x++)
{
Bub[x] = randy.nextInt(100);
System.out.println (Bub[x]);
}
System.out.println ("This is the original array");
while (! Done)
{
Done = true;
for (int x = 0; x<Bub.length-1; x++)
{
if(Bub[x+1] > Bub[x])
{
int temp = Bub[x];
Bub[x] = Bub[x+1];
temp = Bub[x+1];
Done = false;
}
else
{
Done = false;
}
}
for(int x = 0; x<6; x++)
{
System.out.print(Bub[x]+" ");
}
}
}
}
实际上,排序算法本身也可能有一些改进。就我个人而言,我喜欢这样做:
int temp = Bub[x];
Bub[x] = Bub[x+1];
temp = Bub[x+1]; //Here should assign Bub[x+1] to temp
//Example: Bub[x+1] = temp
公共类排序{
私有静态int[]数组={3,8,-1,7,0,3};
公共静态void main(字符串[]args){
for(int i=0;i数组[j]){
int temp=数组[i];
数组[i]=数组[j];
数组[j]=温度;
}
}
}
for(int i=0;i
这项工作
public class Sort {
private static int[] array = { 3, 8, -1, 7, 0, 3 };
public static void main(String[] args) {
for(int i = 0; i < array.length - 1; i++) {
for(int j = i + 1; j < array.length; j++) {
if(array[i] > array[j]) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
for(int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
}
}
publicstaticvoidmain(字符串[]args){
int Bub[]=新int[6];
随机随机数=新随机数();
布尔完成=假;
对于(int x=0;xa作为提示,您可能希望在代码中遵循Java约定——变量名的第一个字母是小写的,只有后续单词的第一个字母是大写的,例如testGears——请参见。您可能希望将bub复数化,并给它一个更具描述性的名称。这不仅有助于那些试图使用lp,但对你自己来说,还有几个月的时间-需要解决的问题更少。你是否尝试过使用调试器单步执行代码和/或插入带有变量值的频繁打印语句?我认为,通过这种方式,你会学到更多,然后尝试从堆栈溢出中获得答案。你尝试过使用调试器吗?设置一些断点在你的代码中,并逐步进行,看看它到底做了什么。对我来说,不用看太长时间,它看起来好像在if和else中都设置为false,所以它从来没有完成过?@jeff_kile伟人思想相似!:我试着调试它,我发现它没有交换两个数字,而是开始吐出一个数字,所以如果我开始w对于一个由六个数字组成的随机链,它最终将成为一个由六个以上的数字组成的链,这些数字要么具有相同的值,要么具有不同的值,并且多次出现。我尝试过,但它所做的只是java告诉我它导致了“不精确”是的。我有那个代码,一开始几乎完全正确,但它就是不工作。代码看起来不错,但就是不工作。
public static void main(String[] args) {
int Bub[] = new int[6];
Random randy = new Random();
boolean Done = false;
for (int x=0; x<6; x++)
{
Bub[x] = randy.nextInt(100);
System.out.println (Bub[x]);
}
System.out.println ("This is the original array");
while ( ! Done)
{
for (int x = 0; x<Bub.length-1; x++)
{
if(Bub[x+1] > Bub[x])
{
int temp = Bub[x];
Bub[x] = Bub[x+1];
Bub[x+1]=temp ;
Done = false;
}
else
{
Done = false;
}
}
for(int x = 0; x<6; x++)
{
System.out.print(Bub[x]+" ");
}
Done = true;
}
}