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