【发布时间】:2014-07-01 19:13:17
【问题描述】:
我编写了这段代码来对一维数组进行排序,但是当我运行这段代码时,黑色表格只向我显示第二个数组中索引 0 中的最小数字... 这是我的代码:
import javax.swing.JOptionPane;
public class anything1 {
public static void main(String[] args)
{
// inserting array
int[] RandomArray = { 9, 5, 2, 3, 4, 22, 10, 8 };
// sorting array
int[] Sortedarray = new int[RandomArray.length];
int count = 0;
int x = 0;
for (int i = 0; i < RandomArray.length; i++) {
for (int j = 0; j < RandomArray.length; j++) {
if (i != j & RandomArray[i] != 0) {
if (RandomArray[i] < RandomArray[j]) {
Sortedarray[count] = RandomArray[i];
x = i;
} else {
Sortedarray[count] = RandomArray[j];
i = j;
x = j;
}
}
}
RandomArray[x] = 0;
i = count;
count = count + 1;
System.out.println("Count is : " + count);
// break;
}
// write random array
for (int n = 0; n < RandomArray.length; n++) {
System.out.println("This is new random array:" + RandomArray[n]);
}
// write sorted array
for (int z = 0; z < Sortedarray.length; z++) {
System.out.println("This is sorted array:" + Sortedarray[z]);
}
}
}
这是结果的照片,其他任何值索引 0 为 0 我想知道如何将他的下一个最小数字放在索引 1 中,然后将下一个最小数字放在索引 2 中...
【问题讨论】:
-
您的 if 标头
if (i != j & RandomArray[i] != 0)需要两个&,而不仅仅是一个。 -
@ChrisTarazi 这不会解决问题,它只会将其转换为短路运算符。
-
@LuiggiMendoza 可能是为什么它只是一个评论而不是一个答案。
-
这是如何排序的?另外,你为什么要覆盖你的源数组?
RandomArray[x] = 0; -
并不是说它解决了任何问题,但开始使用适当的缩进(我稍微编辑了您的代码以使其更具可读性)。这将使您的代码更清晰,并帮助您查看变量范围或代码块实际开始或结束的位置(放错位置
{或}可能会导致一些烦人的问题)。