Python程序从列表中查找N个最大元素
给定一个整数列表,任务是找到 N 个最大的元素,假设列表的大小大于或等于 o N。
例子 :
Input : [4, 5, 1, 2, 9]
N = 2
Output : [9, 5]
Input : [81, 52, 45, 10, 3, 2, 96]
N = 3
Output : [81, 96, 52]
一个简单的解决方案遍历给定列表 N 次。在每次遍历中,找到最大值,将其添加到结果中,然后将其从列表中删除。下面是实现:
# Python program to find N largest
# element from given list of integers
# Function returns N largest elements
def Nmaxelements(list1, N):
final_list = []
for i in range(0, N):
max1 = 0
for j in range(len(list1)):
if list1[j] > max1:
max1 = list1[j];
list1.remove(max1);
final_list.append(max1)
print(final_list)
# Driver code
list1 = [2, 6, 41, 85, 0, 3, 7, 6, 10]
N = 2
# Calling the function
Nmaxelements(list1, N)
输出 :
[85, 41]
时间复杂度:O(N * size),其中 size 是给定列表的大小。
方法二:
# Python program to find N largest
# element from given list of integers
l = [1000,298,3579,100,200,-45,900]
n = 4
l.sort()
print(l[-n:])
输出:
[-45, 100, 200, 298, 900, 1000, 3579]
Find the N largest element: 4
[298, 900, 1000, 3579]
请参考数组中的 k 个最大(或最小)元素以更有效地解决此问题。