算法
文章平均质量分 60
算法
乐事派
iOS开发者
展开
-
简单的数据压缩
简单的数据压缩压缩实际上就是一种节省空间的行为,比如一个字符占8位,当我们需要用一串字符来记录某种信息时,所占大小就是字符数x8.比如现在需要记录某一串遗传信息核苷酸ATCG。eg:ATCGATTCTG则需要10x8 = 80位。因为以上的字符比较特殊,它是只有4个符号组成,那么我们约定:用2位存储来指代上面的其中一个符号,则就能达到节省空间的目的。eg:A:00 T:01 C:10 G:11那么上述字符串就能压缩成:00011011000101100111,只需要10x2=20位就能完成原创 2022-05-05 17:18:36 · 498 阅读 · 0 评论 -
计算缓存技术
计算缓存技术当我们在求一个结果的时候,会有大量的重复的计算,为了避免系统浪费这些不必要的性能,将相关的结果保存起来,需要用的时候就去查表,这样的思想就是计算缓存技术。常见的比如动态计算UITableViewCell的高度,我们没有必要每次刷到同一个Cell的时候去反复计算相关的高度,对于这样的需求我们只需要用一个数组保存其Cell的高度即可解决在主线程中浪费资源去计算高度了。比如在斐波那契数列递归算法中:原算法:func fib(n:UInt)->UInt{ if (n<2){原创 2022-05-05 10:01:43 · 272 阅读 · 0 评论 -
斐波那契数列
斐波那契数列除了第一个和第二个数以外,后续的每一位都是前两位之和。如:0、1、1、2、3、4、8、13、21接下来我们来实现:给定一个下标N,取得该下标的斐波那契数列上的值。首先从参数和返回值上分析,斐波那契数列是没有负数的,所以参数和返回值都采用无符号的整型UInt。func fib(n:UInt)->UInt{ if n == 0 { return 0 }else if (n == 1){ return 1 } retur原创 2022-05-05 11:13:18 · 353 阅读 · 0 评论