Java 显示外壳排序过程
我还有一个问题,这个代码与我的第一个问题有关。这都是关于贝壳的分类。我不知道我的循环是否正确,但我在如何打印逐步过程和排序的最终输出方面遇到了问题。谢谢Java 显示外壳排序过程,java,Java,我还有一个问题,这个代码与我的第一个问题有关。这都是关于贝壳的分类。我不知道我的循环是否正确,但我在如何打印逐步过程和排序的最终输出方面遇到了问题。谢谢 我的问题是如何打印shell排序的输出并对所述排序进行可视化 我相信您正在询问如何打印排序数组的值。对吗 如果是这样,有几种方法可以做到这一点 当前,System.out.printlnvalues;代码默认为Object的toString方法,这就是为什么您会看到类似的内容:[I@6db22920作为输出 打印数组的一种简单快捷的方法是使用A
我的问题是如何打印shell排序的输出并对所述排序进行可视化 我相信您正在询问如何打印排序数组的值。对吗 如果是这样,有几种方法可以做到这一点 当前,System.out.printlnvalues;代码默认为Object的toString方法,这就是为什么您会看到类似的内容:[I@6db22920作为输出 打印数组的一种简单快捷的方法是使用Arrays.toStringvalues;代码。此调用将打印排序后的整数,如下所示:
public static void main(String[] args){
numberSort();
}
public static void numberSort(){
int quantity = 0;
int allocate = 0;
quantity = Integer.parseInt(
JOptionPane
.showInputDialog("How many values do you wish to sort? : "));
int[] values = new int[quantity];
for(int x = 0; x < values.length; x++){
allocate = Integer.parseInt(
JOptionPane
.showInputDialog("Values you want to sort : "));
values[x] = allocate;
}
int lenD = values.length;
int inc = lenD/2;
while(inc>0){
for(int i=inc;i<lenD;i++){
int tmp = values[i];
int j = i;
while(j>=inc && values[j-inc]>tmp){
values[j] = values[j-inc];
j = j-inc;
}
values[j] = tmp;
}
inc = (inc /2);
}
System.out.print(values);
}
for(int currentInt : values) {
System.out.println(currentInt);
}
您还可以使用for循环手动迭代数组,并逐个打印值。操作如下:
[2, 3, 4, 6, 8, 9, 11, 15, 19, 57]
上述for循环代码将在单独的行上逐个打印值,如下所示:
public static void main(String[] args){
numberSort();
}
public static void numberSort(){
int quantity = 0;
int allocate = 0;
quantity = Integer.parseInt(
JOptionPane
.showInputDialog("How many values do you wish to sort? : "));
int[] values = new int[quantity];
for(int x = 0; x < values.length; x++){
allocate = Integer.parseInt(
JOptionPane
.showInputDialog("Values you want to sort : "));
values[x] = allocate;
}
int lenD = values.length;
int inc = lenD/2;
while(inc>0){
for(int i=inc;i<lenD;i++){
int tmp = values[i];
int j = i;
while(j>=inc && values[j-inc]>tmp){
values[j] = values[j-inc];
j = j-inc;
}
values[j] = tmp;
}
inc = (inc /2);
}
System.out.print(values);
}
for(int currentInt : values) {
System.out.println(currentInt);
}
这解决了你的问题吗?你的问题是什么?我编辑了我的问题。:D