Java 中的 K-4 City 程序10 Sept 2024 | 4 分钟阅读 K4 City 程序使用一种称为k-均值聚类算法的方法。该算法用于将相似的数据点分组。在本例中,数据点是城市。 该程序使用 k-均值聚类算法来查找 k 个城市,这些城市将充当其他城市的中心或代表。k 的值由用户输入。 代码的工作原理是通过迭代选择到最近中心距离最大的城市。然后将中心添加到中心列表中,并更新所有城市到新中心的距离。重复此过程,直到选出 k 个中心。 代码的输出是选出的中心城市的列表。城市按选出的顺序排列。 示例 考虑以下四个城市 0、1、2 和 3,以及它们之间的距离,如何在这些 4 个城市中放置 2 个 ATM,以最小化城市到 ATM 的最大距离。 实施提供的 Java 代码实现了一种贪心算法(贪心算法是一种算法策略,它在每个小阶段做出最优选择,目标是最终达到全局最优解。)来从一组 n 个城市中选择 k 个中心,其中每对城市之间的距离在二维数组 weights 中给出。目标是选择 k 个中心,以最小化任何城市与其最近中心之间的最大距离。 代码接受两个输入:一个包含 n 个城市的列表和一个距离矩阵。距离矩阵提供了每对城市之间的距离。这些信息用于计算城市之间的相似度或相异度。 代码的输出是选出的中心城市的列表。这些城市被认为是列表中其他城市的代表,用于进一步分析或处理。 输入和初始化
选择中心
该函数迭代选择 k 个中心。
最后,函数返回选出的中心列表。 main() 函数打印出选出的 k 个中心列表。 上述算法的实现 K4City.java 输入 输出 The 2 cities selected as centers are: 0 2 时间复杂度 上面代码中的 selectKcenters() 方法执行时间为 O(n^2k),findMaxDistance() 和 updateDistance() 方法执行时间为 O(n)。 因此,总体时间复杂度为 O(n^2k)。其中 n 是城市的数量,k 是要选择的中心数量。 空间复杂度 空间复杂度取决于距离矩阵的实现方式。 在此代码中,空间复杂度为 O(n + k)。其中 n 是城市的数量,k 是要选择的中心数量。 |
? 在 Java 中,ArrayList 通常用于存储和操作数据集合。有时,您可能需要将 ArrayList 作为参数传递给方法以执行操作或修改其内容。本文将指导您完成将……传递给方法的流程。
阅读 3 分钟
变量是 Java 编程领域中存储数据的关键部分。静态变量和局部实例变量是两种最常见的变量形式。尽管它们都具有存储数据的职能,但在特性和应用方面有所不同。在...
阅读 4 分钟
Java中最长的奇偶子序列是一个问题,其中必须在大小为s的非负数组中找到一个子序列,使得该子序列以交替的方式包含交替的奇数和偶数。因此,必须计算...
7 分钟阅读
击球平均分是板球比赛中的一项重要统计数据,它代表了球员在击球时的表现。它衡量球员持续得分的能力,是评估击球手熟练程度最广泛使用的指标之一。在本文中,我们...
阅读 4 分钟
在 Java 中,String 是一个使用广泛的类,它表示字符序列。Java 中的 String 是不可变的,这意味着一旦创建了 String 对象,它的值就不能被改变。要了解更多 Java String 任何修改都会导致创建新的 String 对象……
阅读 8 分钟
在编程中,当我们处理数据结构时,有时需要存储具有相同哈希值的两个对象。存储具有相同哈希值的两个对象是不可能的。为了解决这个问题,数据结构提供了冲突解决技术。在本节中,我们将...
14 分钟阅读
当一个块被修饰或与 static 一词相关联时,它被称为静态块。静态块被称为静态子句。静态块可用于类的静态初始化。写在静态块中的代码...
阅读 4 分钟
Java 8 提供了一个名为方法引用的新功能。方法引用是指函数式接口的一个方法。它是 Lambda 表达式的一种简洁易懂的形式。当我们使用 Lambda 表达式引用方法时,我们可以用它替换……
阅读 8 分钟
Java 编程语言需要变量来操作和处理数据。Java 会根据数据格式和数据类型创建几个变量。变量声明意味着在程序中创建变量以操作不同的信息。Java 变量声明会创建一个具有所需属性的新变量....
5 分钟阅读
?在 Java 中,垃圾回收是自动管理内存的过程。它找到未使用的对象(不再被程序使用的对象)并删除它们以释放内存。垃圾回收机制使用多种 GC 算法。最流行的算法是...
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India