java - 关于排序算法概念的问题

标签 java sorting

我目前正在学习如何使用 Java 编程,因此我正在学习数据结构等类(class)。最近,我们一直在讨论排序算法的概念,从一开始我就对整个概念感到非常困惑。

我们最近收到了一份有关排序算法的作业,其中一个问题如下所示:

Closest 1d pair. Given a sequence of N real numbers, find the pair of integers that are closest in value. Give a O(N log N) algorithm. Describe your proposed algorithm in English.

基本上,我想问的是:有人可以向我解释排序算法的总体思路及其整体目的,并引导我如何回答这个问题吗?您不必给我答案,我只是想获得回答这个问题所需的知识。

谢谢。

最佳答案

排序的思想是,在排序结构(例如数组、列表或平衡树)中,您可以在 log N 次操作中找到 s 个特定元素。 (例如在数组中使用二分搜索) 如果列表未排序,则平均需要 N/2 次操作。

术语“log N”虽然很常见,但并不是很精确,正确的说法是“ld N”或 log2(ld:对偶对数,或以 2 为底的对数)。 log 通常代表以 10 为基数的 log。 在计算机科学中,几乎 log(N) 意味着 log2(N)

因此,排序列表可以加快您的算法速度,尤其是在您必须搜索多次的情况下。

就你的情况而言: 如果序列已排序,则通过查看序列中的前一个和下一个元素来构造候选对之一。

关于java - 关于排序算法概念的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22157295/

相关文章:

Java for 循环优化 - 在循环之前存储 getter

java - 带有 XPath 的 JDOM2 不适用于 namespace

java - 当我已经扩展了一个实现它的类时,我是否应该显式地实现一个接口(interface)?

arrays - 插入排序理论分析,总移位数。

python - Python 中的冒泡排序排序不正确

c# linq 相当复杂的排序

c - 用 C 打乱文本

java - 为单个 kafka 主题创建多个消费者

java - 错误 :Timeout waiting to lock buildscript class cache for build file when change minSdkVersion

javascript - 基于 javascript 文本的游戏和对象