2016-10-12 曹强
用策略模式实现缓动动画 需求:让小球以各种缓动效果在页面中运动 动画开始前需要记录的: 小球所在原始位置 小球移动的目标位置 动画开始时的时间点 小球运动的时间点 之后,用setInterval创建一个定时器,定时器每19秒循环一次。 //缓动算法,此算法移植于flash var tween = { //t:动画已消耗的时间,b:小球原始位置,c:小球目标位置,d:动画持续时间 linear: function(t, b, c, d) { return c*t/d + b; }, reseIn: function(t, b, c, d) { ret 继续阅读 »
2015-02-01 码农明明桑
视图动画(View Animation),又称补间动画(Tween Animation),即给出两个关键帧,通过一些算法将给定属性值在给定的时间内在两个关键帧间渐变。本文首先讲解各种基本动画的使用,其实介绍View动画的工作过程。 概述 视图动画只能作用于View对象,是对View的变换,默认支持的类型有: 透明度变化(AlphaAnimation) 缩放(ScaleAnimation) 位移(TranslateAnimation) 旋转(RotateAnimation) 可以使用AnimationSet让多个动画集合在一起运行,使用插值器(Interpolator)设置动画的速度。 more 上面说到的几种动画,以及Ani 继续阅读 »
2016-07-21 ruki
虽然已经一年多没有维护gbox这个图形库项目了,最近确实时间不够用。。。 今年的重点是把xmake彻底正好,至少在架构和大功能(包依赖管理)上,要完全落实下来,后期就是零散的维护和插件功能扩展了。。 tbox我会陆陆续续一直进行一些小规模更新,明年上半年稍微重构一些模块后,就开始重点重新搞gbox了,这才是我一直最想做,也是最喜欢做的项目了 所以我宁愿开发的慢点,也要把它做精,做到最好。。 好了,回归正题,虽然现在gbox还处于早期开发中,并不能用到实际的项目中去,但是里面的一些算法,还是很有参考学习价值的。。 我这两天没事就拿出来分享下,如果有感兴趣的同学,可以直接阅读源码:monotone.c 毕竟这个算法我陆陆续 继续阅读 »
2014-04-19 veryyoung
这是唯品会实习生招聘的压轴题 首先吐槽下vip.com ,暑期实习生一共才招21人!太少了吧! 笔试现场各种乱,Java,Android,Tester,PHP,IOS甚至还有管培,产品经理这些,全坐一起,...人挨人的 笔试题更坑爹啊!前面选择题,都是Java语法题,感觉没多大含金量。 大题更坑啊!操作系统,网络,组成原理,算法各一题 其中前三者,都是考死知识,神马解释操作系统进程通信方式,解释段页式管理,解释TCP和UDP 最后的算法题还算不错! 题目是:O(1)时间内删除单链表节点 拿到这道题的第一想法是,我擦!你TMD逗我呢!这TMD也可能实现?! 寻思一番之后,突然发现,卧槽!这真的可以实现啊! 好吧,开始进入 继续阅读 »
2016-12-17 jude
下面用一句话来描述今年作为程序员的我: 我享受编程的乐趣,也想用自身所学,做个有一点受众的产品。 以前对算法和数据结构只有零零碎碎的印象,年初有幸看到《算法第 4 版》这本书,对算法和数据结构有了整体的认知。2、3月份那段时间每天一边细看,一边手写书上的代码加深理解,还顺便学习 java 。以我粗浅的眼光来看, java 的接口和泛型对团队合作来说是好东西。 继续阅读 »
2018-09-04 Vaniot
算法:由输入经过一系列的计算步骤得到输出 排序问题:将无序的输入经过处理按照一定的孙徐输出 优秀的算法: - 正确性(思路清晰) - 高效(算法分析) - 易于实现(现成的算法) 算法的用处: - 生物信息学 - 网络(图论,字符串查找) - 信息安全(RSA..) - 优化(调度) 算法问题: - 图论(最短路径...) - LCS(动态规划...) - 拓扑排序 - 凸包 数据结构: C++ STL 优缺点 效率 难解问题: 并行算法 CPU效率 算法技术 算法的效率 渐近记号 问题规模量 时间T(n) 数组去重 继续阅读 »
2017-11-30 Vaniot
排序的定义及分类 排序的目标:将无序输入的数据按有序排列 计算的时间复杂度(最差、平均、和最好性能),依据列表(list)的大小(n)。一般而言,好的性能是O(n 3log n),且坏的性能是O(n2)。对于一个排序理想的性能是O(n)。仅使用一个抽象关键比较运算的排序算法总平均上总是至少需要O(n log n)。 内存使用量(以及其他电脑资源的使用) 稳定性:稳定排序算法会让原本有相等键值的纪录维持相对次序。也就是如果一个排序算法是稳定的,当有两个相等键值的纪录R和S,且在原本的列表中R出现在S之前,在排序过的列表中R也将会是在S之前。 依据排序的方法:插入、交换、选择、合并等等。 more 分类 1.按稳定性(在待排序的 继续阅读 »
2014-09-24 Xie Jingyi
这是一道区间型DP,转移方程很简单,但在实现的过程中却遇见了很多坑,在此记录一下。 链接:Link 耗时:0.368s 容易想到,前i个数的划分情况可以由1,2,3...,i-1的划分情况来决定。因此很容易得到状态转移方程: d[i] = min(d[i], d[j]+1) //j = 0, 1, 2...n-1 并且 s[j+1, i]为回文串,初始条件:d[i] = i。 d[i]表示前i项的最小划分。这样一来状态转移的复杂度就为O($n^2$)。 但状态转移的判断呢?“回文串”是一个复杂的条件,判断一个串是否为回文串需要将该串至少遍历一遍。这样一来时间复杂度就上升为O($n^3$)了。而事实上在这种算法中有许多无谓的计 继续阅读 »
2014-12-09 Mithrilwoodrat
这几个实验都是上课时候一两小时实现的,因为老师给出的参考代码有些惨不忍睹(虽然我写的也没好到哪去).因为时间有限,就没用C++. 同样是因为时间有限,仅供参考,有bug概不负责. 代码如下 # -- coding: utf-8 -- class Bank(object): def init(self): self.totalpro = 0 self.process = [] self.res_num = 4 self.res_type = ['A', 'B', 'C', 'D'] self.Resources = {'A':10, 继续阅读 »
2014-11-01 Xie Jingyi
在学习数论时我们都知道:只用2的幂次可以组合出所有的正整数。这便是二进制的魅力——状态简单而又变化万千。 引子 实际算法中,常常有一些线性的但数据量特别大的问题,如区间求和、求最小值等。很多时候,为了把时间复杂度从$O(n^2)$甚至更高的地方降下来,我们需要对数据进行一些预处理,以提高计算的速度。在这其中,有很大一部分是来自二进制运算特点的启发。 目录 树状数组 RMQ LCA&树上倍增 继续阅读 »