开发者社区> 问答> 正文

Java中的自定义排序算法?

大家好,我想写一个小的Java程序来帮助我对列表进行排序。想象一下列表看起来像这样: 苹果,葡萄柚,香蕉,菠萝,椰子

现在,我不想按字母顺序或类似的方式进行排序,例如,按我最喜欢的水果进行排序,因此排序后的列表可能看起来像这样:椰子,香蕉,苹果,菠萝,葡萄柚

到目前为止,我的想法是可以这样进行:将苹果写入列表。然后将葡萄柚和苹果进行比较,然后用户说出他更喜欢的东西(在这里是苹果),这样葡萄柚就移到了苹果之下。然后,它将香蕉与例如苹果进行比较,并且用户告诉程序他更喜欢香蕉,因此该程序超越了苹果,并且不再需要与葡萄柚进行比较,从而节省了大量时间。该程序最终应处理几百个条目和比较项,因此通过问较少的问题来节省时间将节省大量时间。我在正确的轨道上吗?另外,输入列表,数组,arraylist或...的最佳方法是什么?

应该如何实施?有合适的分类算法吗?提前致谢!

问题来源:Stack Overflow

展开
收起
montos 2020-03-25 23:04:17 1019 0
2 条回答
写回答
取消 提交回答
  • 如果你想自定义排序算法,那你就把数据存在数组中,然后通过自定义的函数去定义排序算法

    2020-03-30 21:25:00
    赞同 展开评论 打赏
  • 您应该构建一个二进制搜索树。

    插入新水果时,您会问用户他们最喜欢哪个水果,以在哪里插入新水果节点。要减少问题数量,请保持树平衡。

    一旦构建了“首选项树”,就可以对树进行深度优先的迭代,为每个水果分配递增的“首选项值”,并构建一个Map<String, Integer>,这样您就可以快速查找任何水果首选项值,也就是排序序列号。

    回答来源:Stack Overflow

    2020-03-25 23:04:47
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载