Python - 最近 K 排序

pythonserver side programmingprogramming

给定的问题陈述需要使用 Python 找到最接近的 K 并根据 K 的值对其进行排序。所以我们将使用基本的 Python 来解决这个问题。

理解问题

手头的问题是按照与 K 值的差异增加对列表中的给定项目进行排序。K 是给定值,将用于计算与每个项目的差异并根据最小差异排列项目。让我们通过一个例子来理解这个问题:

所以我们可以在这里看到差异在增加。我们已经按照项目与 K 值的差异递增顺序排列了项目。

上述问题的逻辑

为了解决给定的问题,我们将使用 abs 函数,该函数将用于计算 K 和列表项目之间的绝对差异。因此,通过使用此差异,我们将对给定的列表进行排序,这是所需的结果。

算法

  • 步骤 1 - 定义一个名为 item_distance 的函数,并逐一传递列表的项目以获取 K 和 item 之间的差异。

  • 步骤 2 − 得到差值后,我们将初始化 K 的值和列表作为项目。

  • 步骤 3 − 因此,借助 sorted 方法,我们将根据 item_distance 对列表中的给定项目进行排序。

示例

# 定义函数以查找距离
def item_distance(item):
return abs(item - K)

# 初始化 K 的值
K = 10

# 项目列表
items = [10, 4, 12, 15, 3, 6, 7, 9]

# 根据与 K 的距离对输入列表进行排序
sorted_items = sorted(items, key=item_distance)

print(sorted_items)

输出

[10, 9, 12, 7, 6, 15, 4, 3]

复杂度

根据 K 的值对给定输入列表进行排序的代码所花费的时间为 O(n log n),这里 n 是输入列表的大小。因为我们使用了 Python 内置函数 abs 函数来计算 K 和列表项之间的绝对差异。并使用需要 O(n log n) 时间对元素进行排序的 sorted 函数。

结论

我们已经成功地为给定的问题创建了代码,即根据项目和 K 之间的差异对项目进行排序。因为我们使用了两个内置函数 abs 和 sorted 来最小化执行时间。该算法对于解决此类问题非常有效。


相关文章