首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

Python有什么高速计算队列中连续符合某条件的片段的方法

2013-11-14 
Python有什么快速计算队列中连续符合某条件的片段的方法主要是想实现或扩展股票公式中last(条件)函数就

Python有什么快速计算队列中连续符合某条件的片段的方法
主要是想实现或扩展股票公式中"last(条件)"函数
就是从队列当前位置向后倒推连续符合条件的个数

[1,43,5,6,6,7,8,9]
当前位置最后一个,条件是n(i)>=n(i-1),得出结果5或者[5,6,6,7,8,9]

由于这段代码调用频繁,所以需要效率高的,用什么算法或模块实现 Python3.3
pandas或numpy之类模块有类似高效的函数么?

类似地,在列表(不一定是数列)某个位置 i ,向后查找符合条件的连续片段
一般有什么算法?只是for去逐个比较条件么?
[解决办法]
一些想法:

一般情况下,好像没有什么好算法:假设从当前位置起有k个连续符合条件的数,你只有检查过这k个数中的每一个,才能断定这一点。所以简单的逐个比较已经是最优了。

如果你需要重复查询同一个数列(用同一个条件),可以遍历一遍,记住结果。

如果查询的条件有传递性的话,可以只记住每个递增子序列开始的位置,查询时用二分法定位。能节省一点空间,如果子序列比较长的话。
[解决办法]
用c语言吧

生成三个数组
第一个 差
第二个 累计和
第三个 结果

热点排行