这些年我做过的项目

安卓Canvas渲染引擎——hEngine

教程收集

欢迎访问hanyeah的blog

27
2018
08

堆排序

(二叉)堆是一个数组。它可以看成一个近似的完全二叉树,树上的每一个节点对应数组中的一个元素。除了最底层外,该树是完全充满的,而且是从左向右填充。表示堆得数组A包括两个属性,A.length给出数组元素的个数,A.heapSize表示有多少个堆元素存储在该数组中。

24
2018
08

谷歌浏览器截长屏

利用 Chrome 原生工具进行网页长截图

23
2018
08

矩阵乘法的Strassen方法

两个n×n的矩阵相乘,按照定义来写算法,算法的时间复杂度是O(n³)。

Strassen算法是一个分治算法,可以将矩阵相乘的时间复杂度降为O(n^lg7)。

20
2018
08

最大子数组

寻找数组A的和最大的非空连续子数组。

19
2018
08

斐波那契数和黄金分割

斐波那契数:

F0 = 0;

F1= 1;

Fi = Fi-1+Fi-2 ; i>=2

黄金分割率φ及其共轭数φ^ ,是方程x^2 = x + 1的两个根。

18
2018
08

逆序对

假设A[1...n]是一个有n个不同元素的数组,若i<j且A[i]>A[j],则对偶(i,j)称为A的一个逆序对。

18
2018
08

Horner规则(秦九韶算法)

秦九韶算法是一种将一元n次多项式的求值问题转化为n个一次式的算法。在西方被称作霍纳算法,是以英国数学家霍纳命名的。

18
2018
08

归并排序

归并排序算法完全遵循分治模式。

18
2018
08

冒泡排序

18
2018
08

选择排序

考虑排序存储在数组A中的n个数:首先找出A中的最小的元素并将其与A[0]中的元素进行交换,接着,找出A中的次最小元素并将其与A[1]中的元素进行交换,对A中的前n-1个元素按该方式继续。该算法成为选择排序。