BubbleSort使用整数数组

Kan*_*ngh 0 java sorting bubble-sort

我一直在尝试使用java中的简单整数数组实现冒泡排序.但是似乎有一些问题.现在我知道使用ArrayList是最好的选择,我也会这样做.但是为什么不用简单的整数数组进行排序.这是代码

package sort;

public class BubbleSort {

    int array[]={1,5,3,32,54,6,87,5,1};
    int temp=0;
public void enter(){
    for(int i=0;i<array.length;i++){
        for(int j=0;j<(array.length-i);j++){
            if(array[j]>=array[j+1]){


                temp=array[j];
                array[j]=array[j+1];
                array[j+1]=temp;
                }

        }
    }
}
public void show(){

    for(int i:array){
    System.out.println(i);
    }
}
public static void main(String str[]){

    new BubbleSort().Enter();
    new BubbleSort().Show();
}
}
Run Code Online (Sandbox Code Playgroud)

它产生与输入相同的数组.什么都没有改变.简单数组和ArrayList或Vector之间的区别只是它们提供了数组大小的动态时间扩展.还有什么更多吗?我的意思是简单数组每次操作时都会创建一个不同的实例,就像字符串一样?它似乎确实在这里这样做.

SiB*_*SiB 5

因为您正在排序一个实例并显示另一个实例.

new BubbleSort().Enter();
new BubbleSort().Show();
Run Code Online (Sandbox Code Playgroud)

使用

BubbleSort bubbleSort = new BubbleSort();
bubbleSort.Enter();
bubbleSort.Show();
Run Code Online (Sandbox Code Playgroud)

此外,你应该重新命名Enter(),以enter()Show()show()至少可以这样说.


Jam*_*mie 5

问题是您没有为BubbleSort类的实例化指定名称.

new BubbleSort().Enter();
new BubbleSort().Show();
Run Code Online (Sandbox Code Playgroud)

您的代码创建一个新的BubbleSort类,然后对其进行排序.然后它创建了另一个新的(并且完全独立的)BubbleSort类,并显示了一个 - 而且它还没有被排序.

您想为变量命名,因此您可以对其进行排序然后显示它,如下所示:

BubbleSort myBubbleSort = new BubbleSort();
myBubbleSort.Enter();
myBubbleSort.Show();
Run Code Online (Sandbox Code Playgroud)

作为旁注(并在SiB的回答中指出),您可能还想查看Java命名约定.遵循这些约定使您的代码对其他Java程序员更易读,并包括诸如使用lowerCamelCase方法名称和UpperCamelCase类名之类的内容.