📅  最后修改于: 2023-12-03 15:37:14.900000             🧑  作者: Mango
一个输入无序数组,找出最大的三个数。
一个无序数组。
最大的三个数。
可以使用选择排序进行排序,或者使用快速排序进行排序,然后取最大的三个数即可。
这里给出使用选择排序的示例代码:
def find_largest_three(arr):
for i in range(len(arr)):
max_idx = i
for j in range(i+1, len(arr)):
if arr[max_idx] < arr[j]:
max_idx = j
arr[i], arr[max_idx] = arr[max_idx], arr[i]
return arr[:3]
assert find_largest_three([3, 5, 1, 7, 9, 2, 8]) == [9, 8, 7]
assert find_largest_three([1, 2, 3]) == [3, 2, 1]
assert find_largest_three([1, 2]) == [2, 1]
选择排序算法的时间复杂度为 $O(n^2)$,取最大的三个数的时间复杂度为 $O(1)$,总时间复杂度为 $O(n^2)$。