关于列表和最大乘积的算法
Algorithm on List and Maximum Product
a)对于正实数的序列X=(x1,x2,…,xn),我们可以找到一个子序列,该子序列中的元素在O(n)中具有最大乘积。
b) 使用O(n)阶算法,我们可以合并m=sqrt(n)排序的序列,这些序列总共有n个元素。
为什么我的教授说这两句话是假的?
我读取了(a)的O(n)算法:http://www.geeksforgeeks.org/maximum-product-subarray/
有人能帮我吗?
我不知道第一条语句,但第二条语句可以通过以下参数判断为false:
由于存在sqrt(n)序列,每个序列有n个元素,因此n*sqrt(n)中的元素总数。在最坏的情况下,您需要至少检查每个元素一次,才能将它们全部合并到一个列表中,这将使时间复杂性至少为n*sqrt(n)。如果每个序列中都有sqrt(n)元素,请阅读编辑。
我真的不确定第一个,因为你提供的算法是针对整数的,而我们在你的情况下处理实数。
EDIT:k个排序数组和n个总元素的合并算法将时间复杂度设置为O(n*log(k))。即使每个序列都有sqrt(n)个元素(与前一段中假设的每个元素n相反),时间复杂性仍然是O(n*(log(sqrt(n)))。
相关文章:
- 在数组中输入 n 个整数的列表,并以类似于钟摆来回移动的方式排列它们. 输入-1 3 2 5 4,输出5 3 1 2 4
- 贪婪算法编号列表
- C++未知长度字符串的数组,其行为类似于 Python 字符串列表
- C++ 列表等效于 C# 列表
- 是否有一种 STL 算法可以最后找到,但它也适用于指针?
- 类成员函数参数列表是否可以依赖于模板参数?
- 使用 Rcpp 加速替换迭代算法中的列表和向量元素是否合法?
- 如何使用cpp编写选择排序算法以降序对元素列表进行排序?
- O(NlogN)算法运行速度快于O(n)..等等,什么
- 如何找出依赖于LIB文件的DLL列表?
- 条件_variable和unique_lock如何适用于线程安全列表
- 反向链接列表算法
- G++ - 警告:扩展初始值设定项列表仅适用于 -std=C++11 或 -std=GNU++11
- 指针算法是否适用于迭代器?
- 修改贝尔曼-福特算法以维护基于成本的有序列表
- 关于合并两个列表的算法的一些问题
- 唯一表单算法和列表容器的唯一性有什么区别
- 将类型转换应用于列表:"const"特别吗?
- 按类型算法的列表组合
- 如何正确使用选择排序算法对列表进行排序