【发布时间】:2023-03-17 22:24:01
【问题描述】:
对于分配,我将创建一个构造函数,以 String[] names 和 int[] rank 作为参数,在 O(n log n):
(数据验证):
- 检查names和rank的长度是否相同---(时间:O(1))
- 检查 names 和 rank 是否不为空 ---(时间:O(1))
- 检查 names 不包含任何重复或空字符串 --- (时间: O(n^2)) ???
- 检查 rank 是否仅包含不同的元素 ---(时间:???)
(实际对象声明):
- 将names和rank的每个索引值添加到自定义类型的ArrayList中(时间:O(n))
对于这个项目,我不允许使用除数组和 ArrayLists 之外的任何数据结构(没有 Map 或 Set 接口),但我可以使用 Arrays 类中的方法来搜索和排序数组。我看不出如何在 O(n log n) 时间内完成所有这些事情。我尤其不知道如何在不到 O(n^2) 的时间内完成第 3 步。感谢您的帮助!
【问题讨论】:
标签: java arrays time arraylist big-o