- 博客(9)
- 资源 (1)
- 收藏
- 关注
原创 二叉树入门
二叉链表 对二叉树的存储,即可采用顺序存储结构(数组),也可采用链式存储结构(链表)。 在链式存储结构中,每一个节点都含有一个数据域,两个指针域——分别用来指向该节点的左、右子树。利用这种节点构成的链式存储结构称为二叉链表。创建 为简单起见,给定一数据集,以该数据集中的元素创建一完全二叉树。这里不考虑非完全二叉树的情况。代码如下:str
2016-05-31 23:28:34 784
原创 KMP字符串匹配
思路 判断s中是否含有字符串t。 一般思路为:从s中首字符开始,依次与t中进行比对,直到t结尾或者某一个位置两者不同 。如果到t的结尾,则表示s中含有t。如果有一个位置不相同,那么从s中下一个字符开始,再次与t中字符比对。如下: i = 0,j = 0; for(;i<pl;i++){//pl为p字符串的长度,依次遍历它的每一个字符串
2016-05-23 22:59:55 287
原创 栈与队列
栈基础 栈后进先出的一种数据结构。可以用链表来实现,只需要将新插入的元素插到表头,然后将链表的指针更新到最新的位置即可。 取的时候,从链表的指针开始,这样就保证了后进先出。 使用链表形式实现栈时,不需要一个单独的指针用来存储栈底与栈顶,只需要记录栈顶元素的地址即可。每一次插入都将新元素的next属性设置为原来的栈顶,而新栈顶为新插入的元素。
2016-05-20 14:25:03 381
原创 smali入门
参考 参考1 参考2签名 方法签名与类签名都与jni中一样。略字段含义 .field 定义变量,如.field private isFlag:z表示private boolean isFlag;冒号后面的表示变量类型,前面的表示变量名 .method 定义方法。如.method privat
2016-05-18 11:07:13 1590
原创 排序算法的应用
使用堆排序求前k个最大(小)数原理 假设序列中有n个元素,取其前k个组成一个最大堆。由于最大堆的堆顶为序列中最大元素,所以组成的最大堆的堆顶是前k个元素中最大的元素。依次用第k+1到第n个元素与堆顶进行比较,如果比堆顶元素大,那么该元素肯定不会是前K个最小的元素;如果比堆顶小,那么堆顶的元素肯定不是前k个最小的元素,此时更新堆顶元素,并重新计算使新堆成为最大堆。依次进行,直到
2016-05-17 17:55:22 307
原创 排序算法(二)
基数排序原理 参考 对每一个数字,先按个位进行排序(个位相同的放在一起,不需要排序),再按十位进行排序,直到最高位。如果某个数字的位数较少,则该位数按0处理。如(11,1)按十位排序时,把1的十位当作0处理。 在处理时,可以将该位上相同的数字按链表进行处理。类似于Java中HashMap的数组结果。如[10,100,1000,301]按
2016-05-16 13:46:26 340
原创 支付宝
参考 参考准备工作 导入相应的jar包,并在清单文件中添加两个activity,如下: <activity android:name="com.alipay.sdk.app.H5PayActivity" android:configChanges="orientation|k
2016-05-15 18:56:02 252
原创 微信第三方
微信基础 使用前先下载sdk,一个jar包。 在微信开放平台注册应用,应用审核通过后,会拿到一个APP_ID与AppSecret。微信所有功能的使用都是通过IWXAPI的对象进行操作的。拿到这个对象后,调用它的registerApp(APP_ID)将自己的应用注册到微信列表中。其后才可进行别的操作。示例如下: private IWXAPI api; C
2016-05-15 18:25:53 837
原创 排序方法(一)
参考 参考冒泡排序原理 比较相邻两个元素的大小,进行调整位置。代码 略。快速排序原理 通过一次排序将数据分成两个独立的部分,再分别对两部分进行排序,直到结束。代码void quicksort(int a[],int left,int right){ if(right <= left){
2016-05-14 23:16:10 291
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人