对象类型数组的 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++){
这应该可以正常工作
我想问一下冒泡排序(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++){
这应该可以正常工作