小文字 吃饭,睡觉,遛狗头


高斯平滑是怎么回事

前言 算法之重要,不为牛逼,更在其解决问题的实用价值 最近正好看到很久以前收藏的代震军大牛写的图像处理效果,洋洋洒洒几十种像素处理,实在值得我们这些晚辈好好学习; 高斯平滑/模糊 在Android中如果做模糊效果,目前性能最好的方案是用RenderScript实现的Gaussian Blur,也就是高斯模糊,也叫作高斯平滑;原谅我之前不知道高斯模糊的原理, Google大法好,立刻发掘出了一把相关的数学原理介绍,比较好的有阮一峰的一篇科普文章,当然不能漏了维基百科上的介绍Gaussian... 更多


DataBinding踩坑Tips

前言 Android官方的MVVM技术Data Binding出来已经有一段时间了,这些天在开发YoYo Github使用后效果还不错,减少了之前大量的冗余代码,也完全取代了各种诸如ButterKnife之类的视图绑定工具。 踩坑–NavigationView的结合 在官方推荐的DrawerLayout侧滑菜单设计模式中,为了简化,统一风格,google为开发者提供了和DrawerLayout配套的NavigationView,一个NavigationView可以包含一个Header区域的独立... 更多


比较之外,计数排序

前言 陆续介绍了好几种排序,这些都是基于比较数值的比较排序,今天看一看另一种基于计数的排序算法,也算别有洞天。 不比较 假设待排序的是正整数范围内的数的集合(稍加换算也可以使用与负数范围),计数排序的显著特点就是绕过了排序时两两比较大小的过程,其主体思路是,引入一个中间数组C,将数值映射到改中间数组C的下标,元素value在C内的位置就是C[value],而C[value]这个位置存储的值在排序中不断变化,一方面可以保存v元素alue重复的个数; * C[value]=0表示待排序数组中不存... 更多


新瓶装老酒--快速排序|随机快速排序

前言 接上,本文讲的是排序里的快排算法实现。 思路分析 照例还是先理解快排,了解常规实现的思路。 快速排序作为比较排序的一种,包含了归并,插入的两种特性。 具体来讲,快排会不断细分问题的规模,这一点类似归并中问题的拆解;同时在确定分解边界的时候运用的是遍历比较,这与插入排序中选定分割线很像; 下面看一下具体的操作步骤: 1. 拆分数组,确定分割主元,使得主元的取值恰好大于左侧所有值,小于右侧所有值; 2. 根据主原下标,递归求解被划分的数组区域; 分组 分组过程的起始点是假设以数组末... 更多


算法之美,用swift写个插入排序

前言 主说,要有光,于是就有了光 我不是虔诚的教徒,不宣扬圣经讲义,但是我也喜欢圣经里朴实,向善的良言。 举个栗子,再也忘不了插排 本文来聊聊更易理解的插入排序。之所以叫插入排序,不是为别的,正是因为该算法的核心就是将无序的元素插入排好序的部分。 这里有张我觉得很形象的的例子,即打牌是摸牌的过程(取自算法导论) 插入排序的核心思想即在于划分已排序和未排序,将每个待排序的元素逐个与已排序的元素比较,找出恰当的插入位置,插入元素,循环操作至结束 算法实现 这里是一张插入排序的... 更多