为了账号安全,请及时绑定邮箱和手机立即绑定

从文件中读取并选择按价格对存储的对象数组进行排序不起作用

从文件中读取并选择按价格对存储的对象数组进行排序不起作用

Smart猫小萌 2023-12-30 15:55:46
我真的被困在这里,我不知道为什么我得到了错误的选择排序列表。我将 Pencilbox 对象存储在两个不同的数组中,在其中一个数组中我必须按价格对数组进行排序。按价格排序没有按预期工作,我尝试了很多方法来修复它,但仍然不起作用。这是我从中提取信息的文本文件-(每个参数如下:铅笔盒的高度、宽度、价格)12,1,1.4910,2,2.598,1,1.233,3,3.3312,1,1.496,2,3.5010,2,2.59118,2,4.007,2,3.007,3,1.4911,24,2,2.3414,2,6.9910,2,2.598,1,2.35//铅笔盒的高度、宽度、价格我得到这个输出:12, 1, 1.497, 3, 1.498, 1, 1.23   <=== 1.49 > 1.23 so that's incorrect12, 1, 1.498, 1, 2.354, 2, 2.34   <=== this one's the same, 2.34 < 2.3510, 2, 2.5910, 2, 2.5910, 2, 2.597, 2, 3.03, 3, 3.336, 2, 3.58, 2, 4.014, 2, 6.99基本上,代码位于三个不同的文件中,但我在这里将它们组合起来。我标记了发生分离的区域。如果格式看起来有问题,我真的很抱歉,我已尽力修复它。我很感激任何反馈
查看完整描述

1 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

在 SelectionSort() 方法中,内部for j循环应仅用于查找最低索引,并且应在内部循环完成后进行值的交换for j:


for (int i = 0; i < length - 1; i++) { 

    int indexLowest = i; 


    for (int j = i + 1; j < length; j++) { 


        if (array[indexLowest].getPrice() > array[j].getPrice()) {

            indexLowest = j;

        }

    }

    Pencilbox temp = array[i];

    array[i] = array[indexLowest];

    array[indexLowest] = temp;

}


查看完整回答
反对 回复 2023-12-30
  • 1 回答
  • 0 关注
  • 40 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信