【发布时间】:2021-01-05 10:39:47
【问题描述】:
我对数据结构和算法比较陌生(高中时从 YouTube 学习),对于我正在从事的项目,我已经走到了思考的十字路口。
我的项目是创建软件来进行测试。我正在考虑按难度对各个问题进行加权,因此在参加考试时,最不难的问题首先显示,最难的问题最后显示(通过最小堆)。这本身就可以工作,而且这样做会很有效。但是,在我的测试程序中,用户可能不想要下一个问题。他们可能想回到一个问题。目前,这可以通过我的 Question 类 (java) 的数组来解决。
Question[] quizQuestions = {question1, question2, question3, ...}
要转到一个问题,程序会获取问题的索引并显示它。 但是,使用优先级队列,我失去了这个功能。 我可以想出几种方法来避免这种情况,例如创建一个数组来存储优先级队列将问题交给用户之后的问题。
但对我来说,这是个问题。使用基于问题难度整数的排序算法来只使用一个数组会更有效吗?知道优先队列的时间复杂度比任何排序算法都快,所以我倾向于队列。但由于对此非常陌生,我想要一些外部意见。在此先感谢。
【问题讨论】:
-
如果我是你,我会选择排序选项。因为它易于使用,并且有几个优点。如果你想增加一个新的难度级别,你只需要增加那个整数。排序算法完成剩下的工作。
-
“但是,使用优先级队列,我失去了这个功能” --> 单独的优先级队列可以使用数组的索引。因此可以通过优先级索引检索问题。
-
可以在所有问题都没有回答之前停止练习吗?
标签: algorithm sorting data-structures