在数组中查找第 K 小的元素
发布: (2026年3月19日 GMT+8 23:30)
2 分钟阅读
原文: Dev.to
Source: Dev.to
我做了什么
我创建了一个名为 kth_smallest 的函数,它接受两个输入:
- 一个数字数组
- 一个表示位置的值
k
示例
输入:[10, 5, 4, 3, 48, 6, 2, 33, 53, 10],k = 4
输出:5
这意味着数组中第 4 小的数字是 5。
我的解决思路
为了解决这个问题,我首先将数组按升序排序。排序后,最小的元素排在最前面,接着是第二小的,依此类推。
由于数组索引从 0 开始,第 k 小的元素位于位置 k‑1。
所以在排序后,我直接返回索引为 k‑1 的元素。
代码
def kth_smallest(arr, k):
arr.sort()
return arr[k-1]
print(kth_smallest([10, 5, 4, 3, 48, 6, 2, 33, 53, 10], 4))
print(kth_smallest([7, 10, 4, 3, 20, 15], 3))
工作原理
一旦数组被排序,每个元素的位置就会根据其数值固定下来。排序使我们能够直接使用索引挑选第 k 小的元素,省去了多次手动比较的需求。