Python实现查找数组中任意第k大的数字算法示例
作者:野牛程序员:2023-12-14 18:04:12python阅读 2647
下面是一个Python实现的示例,用于查找数组中的第k大数字:
def kth_largest_element(nums, k): # 使用快速选择算法 def quick_select(left, right): pivot_index = partition(left, right) if pivot_index == k - 1: return nums[pivot_index] elif pivot_index < k - 1: return quick_select(pivot_index + 1, right) else: return quick_select(left, pivot_index - 1) def partition(left, right): pivot = nums[right] i = left for j in range(left, right): if nums[j] >= pivot: nums[i], nums[j] = nums[j], nums[i] i += 1 nums[i], nums[right] = nums[right], nums[i] return i # 主函数调用 return quick_select(0, len(nums) - 1) # 示例用法 nums = [3, 1, 4, 4, 2, 2, 3, 5] k_value = 3 result = kth_largest_element(nums, k_value) print(result)
这个示例使用了快速选择算法,它的平均时间复杂度为O(n),其中n是数组的长度。函数kth_largest_element
接受一个数组和一个整数k,返回数组中第k大的元素。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
