对象类型数组的 BubbleSort 无法正常工作

BubbleSort for Object type of array is not working perfectly

我想问一下冒泡排序(Java)

这是我的代码

Object[] bubbled = {"LMAO", 3.48 ,2.3 ,3.61 ,3.16 ,3.56 ,2.9 ,3.99 ,4.87 ,3.91};
for(int pass=1 ; pass<bubbled.length-1;pass++){
            for(int i=1;i<bubbled.length-1-pass;i++){
                if(Double.parseDouble(String.valueOf(bubbled[i]))> 
                    Double.parseDouble(String.valueOf(bubbled[i+1]))){
                    float hold= Float.parseFloat(String.valueOf(bubbled[i]));
                    bubbled[i] = bubbled[i+1];
                    bubbled[i+1] = hold;
                } 
            }
        }

数组为Object[]类型。我希望它从 bubbled[1] 开始,因为 bubbled[0] 是非数值。 它会进行排序,但不会在过程结束时对我的最后 3 个索引进行排序。

例如:

之前:3.48 ,2.3 ,3.61 ,3.16 ,3.56 ,2.9 ,3.99 ,4.87 ,3.91

之后:2.3 ,2.9 ,3.16,3.48 ,3.56, 3.61 ,3.99, 4.87 ,3.91

谁能指出问题所在?

您对阵列的遍历不够。

for(int pass = 0; pass < bubbled.length; pass++){

您的代码是正确的,但您忘记了每个 for 循环中的最后一次迭代。 将您的 for 循环更改为:

for(int pass=1 ; pass<bubbled.length;pass++){
            for(int i=1;i<bubbled.length-pass;i++){

这应该可以正常工作