单选题

下面的Python代码,用于求一系列数据中的最大值。有关其算法说法错误的是(    )。

def find_max(nums):
	if not nums:
		raise ValueError("输入数组不能为空")
	if len(nums) == 1:
		return nums[0]
	mid = len(nums) // 2
	return max(
		find_max(nums[:mid]),
		find_max(nums[mid:])
	)
print(find_max([1,2,2,11,21,1,2,3]))
A

本题的 find_max() 函数采用分治算法

B

和上上题的 find_max() 函数相比,本题 find_max() 运行效率相对较低,因为需要分配额外的内存空间,用以存储nums的切片结果

C

和上上题的 find_max() 函数相比,本题 find_max() 的空间复杂度与之相同,不需要额外的存储资源

D

本题的 find_max() 的时间复杂度为 O(n log n)

赣ICP备20007335号-2