【速度快】最长不下子序-陈启峰

上传人:j****9 文档编号:45429040 上传时间:2018-06-16 格式:DOC 页数:2 大小:28.50KB
返回 下载 相关 举报
【速度快】最长不下子序-陈启峰_第1页
第1页 / 共2页
【速度快】最长不下子序-陈启峰_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《【速度快】最长不下子序-陈启峰》由会员分享,可在线阅读,更多相关《【速度快】最长不下子序-陈启峰(2页珍藏版)》请在金锄头文库上搜索。

1、16:05 2007-6-12 求最长不下子序的算法(陈启峰)- -推荐我自创的求最长不下子序的算法算法时间复杂度:O(nlog n) 一般比这个数字小得多算法空间复杂度:O(n)编程序复杂度:较易数据结构:栈算法:1、建立一个栈 stack,清空。stacki表示当前状态下,所有长度为 i 的子序中最后一个数 的最小值。2、按先后顺序循环序列的每一个数,用操作 3 修改当前状态3、如果这个数不小栈顶或栈为空就 i这个数.将 stacki更新为这个数。可以用二分法是因为 stack 是有序的4、输出 stack 的长度。最长不下子序长度优点:这个算法无论是算法时间复杂度,算法空间复杂度或编程序

2、复杂度都十分优秀。补充:如果要求最长不下子序,就只要再建立一个数组 f,在运行完操作 3 后记录每一个 数在子序中是如何得到,即 f这个数的序号-stacki-1的序号.program p1986(input,output); var x:array0.40000 of word;temp,i,c,m,n,k:word; function h(a,b:word):word; beginif a=b then beginh:=a;exit;end;temp:=(a+b)div 2;if xtempxm then begininc(m);xm:=k;endelsexh(1,m):=k;end;writeln(m);end; end.

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 初中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号