日期:2014-05-17  浏览次数:21605 次

算法问题:如何判断一组数据中某段数据成上升趋势!求大虾
比如 1000 长度的 int 数组;
要求找出 里面 是否存在 
某段数据-(要求为连续的30个数据) 
成上升趋势!
举几个例子不符合要求的例子(以9个数据位一个段):
1 20 10 9 8 7 6 5 4
1 3  2  1 0 8 9 6 9
符合要求的
1 5  4  3 7 8 6 5 4
1 2  3  4 5 6 7 8 9

------解决方案--------------------
这个需求太模糊了,一般性的算法有两种,最长递增子序列 和 逆序数
------解决方案--------------------
不知道这样行不行,相邻的两点求斜率,30个点的话一共有29个斜率,当斜率之和大于零,并且正的斜率大于负的斜率的时候认为该区间,呈上升趋势
------解决方案--------------------
引用:
这个需求太模糊了,一般性的算法有两种,最长递增子序列 和 逆序数


最长递增子序列 和 逆序数 
求介绍这两种算法
------解决方案--------------------
1.定义一个小区间,这个区间里包含有少数点(点数自定,就看你想要哪种程度的上升趋势了);
2.判断这个区间内点数是否成上升趋势
  (1)区间内的最后一个点必须大于第一个点;
  (2)中间点的波动幅度你得设置一个限制;
3.区间之间判断也可用(1)、(2)来加以判断。
不太懂你的上升趋势是怎么定义的,我能想到的就是这。。