摘要: 一、概念 快速排序是对冒泡排序的一种改进:记录的比较和移动是从两端向中间进行的,关键码较大的记录一次就能从前面移动到后面,关键码较小的记录一次就能从后面移动到前面,记录移动的距离较远,从而减少了总的比较次数和移动次数。 基本思想:首先选取一个轴值(povit,即比较的基准),将待排序记录划分为独立的 阅读全文
posted @ 2017-07-24 19:39 fankongkong 阅读(222) 评论(0) 推荐(0) 编辑
摘要: (m&1) == 0 是偶数 (m&1) == 1 是奇数 阅读全文
posted @ 2017-07-24 15:04 fankongkong 阅读(380) 评论(0) 推荐(0) 编辑
摘要: 二进制位: 阅读全文
posted @ 2017-07-23 20:05 fankongkong 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 1、假设当前Activity为A,如果这时打开一个新的ActivityB,那么A的onPause()先执行,B的onResume()后执行。 2、onStart和onStop是从Activity是否可见这个角度来回调的,而onResume和onPause是从Activity是否位于前台这个角度来回调 阅读全文
posted @ 2017-07-19 19:59 fankongkong 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 1 2017-7-18 java集合学习 2 2017-7-19 Activity的生命周期和启动模式 阅读全文
posted @ 2017-07-18 19:02 fankongkong 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 方法一、用HashSet来解决 方法二、计算循环 用两个指针,一个fast指针,每次走两步,一个slow指针,每次走一步,当fast指针与slow指针相遇时,假设fast指针走了2x,那么slow指针走了x,由于有环,那么为了便于理解,分为两种情况 情况一: 1、当fast指针仅仅只比slow指针多 阅读全文
posted @ 2017-06-14 12:52 fankongkong 阅读(16562) 评论(1) 推荐(3) 编辑
摘要: 一、概念 主要思想:将若干有序序列逐步归并,最终归并为一个有序序列。 二路归并排序是归并排序中最简单的排序方法,其基本思想是: 将若干个有序序列进行两两归并,直至所有待排序记录都在一个有序序列为止。 二、复杂度 三、代码实现 四、代码运行结果 冒泡排序 快速排序 选择排序 堆排序 插入排序 希尔排序 阅读全文
posted @ 2017-06-02 17:55 fankongkong 阅读(612) 评论(0) 推荐(0) 编辑
摘要: 一、解法 二、思路 1、我们每次分别求个位,十位,百位,千位等等对应的1的个数。 2、举个例子求1-315中1的个数 2-1 首先当m=1时,a = 315,b = 0,这个时候我们求的是个位为1的个数。 此时个位的位置为5,大于2,我们用(a+8)/10来求得个位为1的数目, 此时计算(315+8 阅读全文
posted @ 2017-06-01 11:33 fankongkong 阅读(510) 评论(0) 推荐(0) 编辑
摘要: 一、概念 冒泡排序算法的运作如下:(从后往前) 1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3、针对所有的元素重复以上的步骤,除了最后一个。 4、持续每次对越来越少的元素重复上面的 阅读全文
posted @ 2017-05-24 11:35 fankongkong 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 21用于控制信令的传输 20用于数据的传输 443 阅读全文
posted @ 2017-05-08 14:51 fankongkong 阅读(1243) 评论(0) 推荐(0) 编辑
摘要: 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 阅读全文
posted @ 2017-04-25 20:40 fankongkong 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 一、概念 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好; 其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。 二、执行过程 折半查找的基本思想为: (1)在有序表中,取中间记录作为比较对象,若给定值与中间记录的关键码相等,则查找成功 阅读全文
posted @ 2017-04-20 11:13 fankongkong 阅读(939) 评论(0) 推荐(0) 编辑
摘要: 1 import java.util.LinkedList; 2 import java.util.Queue; 3 4 public class StackToQueue { 5 //用两个队列模拟栈的push 和 pop 6 Queue q1 = new LinkedList(); 7 Queue q2 = new LinkedList(); 8 ... 阅读全文
posted @ 2017-04-19 15:14 fankongkong 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 一、hash方法 如下是jdk1.8中的源码 (1)HashMap允许一个key为空,因此key为null 的hash 值为0。 a、首先获取对象的hashCode()值; b、然后将hashCode值右移16位; c、然后将右移后的值与原来的hashCode做异或运算,返回结果。 (其中h>>>1 阅读全文
posted @ 2017-04-19 10:03 fankongkong 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 1 package com.algorithm; 2 3 public class BstALL { 4 //输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。 5 //要求不能创建任何新的结点,只能调整树中结点指针的指向 6 public TreeNode Convert(TreeNode pRootOfTree) { 7 if(pR... 阅读全文
posted @ 2017-03-14 15:42 fankongkong 阅读(699) 评论(0) 推荐(0) 编辑
摘要: 今天遇到了一个问题,如何把pdf文件添加到word中,而不是只添加图标,下面是解决方案: 1、用word 打开pdf文件; 2、打开word文件; 3、把1中的pdf文件复制粘贴 到2中的word文件中。 阅读全文
posted @ 2017-03-14 10:28 fankongkong 阅读(2979) 评论(0) 推荐(0) 编辑
摘要: 1 package com.algorithm; 2 3 import java.util.ArrayList; 4 import java.util.LinkedList; 5 import java.util.Queue; 6 7 //从上往下打印出二叉树的每个节点,同层节点从左至右打印。 8 /** 9 public class TreeNode { 10 i... 阅读全文
posted @ 2017-03-10 14:32 fankongkong 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 1 package com.algorithm; 2 3 import java.util.Stack; 4 5 /*输入两个整数序列,第一个序列表示栈的压入顺序, 6 请判断第二个序列是否为该栈的弹出顺序。假设压入 7 栈的所有数字均不相等。例如序列1,2,3,4,5是某 8 栈的压入顺序,序列4,5,3,2,1是该压栈序列对 9 应的一个弹出序列,但4,3,5,1,... 阅读全文
posted @ 2017-03-10 10:58 fankongkong 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 1 import java.util.ArrayList; 2 public class Solution { 3 public ArrayList printMatrix(int [][] matrix) { 4 ArrayList ai = new ArrayList(); 5 int rows = matrix.length;//矩阵的行 数 ... 阅读全文
posted @ 2017-03-09 10:54 fankongkong 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 阅读全文
posted @ 2017-03-08 14:49 fankongkong 阅读(1107) 评论(0) 推荐(0) 编辑
摘要: 1 package com.algorithm; 2 3 public class MergeList { 4 public ListNode Merge(ListNode list1,ListNode list2) { 5 //运行时间:32ms 6 //占用内存:688k 7 //输入两个单调递增的链表,... 阅读全文
posted @ 2017-03-08 12:42 fankongkong 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 1 package com.algorithm; 2 3 //输入一个链表,反转链表后,输出链表的所有元素。 4 public class ReverseListMe { 5 6 public ListNode ReverseList(ListNode head) { 7 //运行时间:36ms 占用内存:528k 8 if(h... 阅读全文
posted @ 2017-03-08 09:56 fankongkong 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 一、题目 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 二、代码 阅读全文
posted @ 2017-03-06 19:21 fankongkong 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 链接:https://www.nowcoder.com/questionTerminal/72a5a919508a4251859fb2cfb987a0e6来源:牛客网 依 阅读全文
posted @ 2017-03-06 14:49 fankongkong 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 链接:https://www.nowcoder.com/questionTerminal/22243d016f6b47f2a6928b4313c85387来源:牛客网 关于本题,前提是n个 阅读全文
posted @ 2017-03-06 14:26 fankongkong 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法 阅读全文
posted @ 2017-03-06 10:19 fankongkong 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 n<=39 阅读全文
posted @ 2017-03-06 09:37 fankongkong 阅读(238) 评论(0) 推荐(0) 编辑
摘要: package com.algorithm; import java.util.Arrays; /*把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。*/ publi... 阅读全文
posted @ 2017-03-03 11:15 fankongkong 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 方法 阅读全文
posted @ 2017-03-02 14:58 fankongkong 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 1 /** 2 * public class ListNode { 3 * int val; 4 * ListNode next = null; 5 * 6 * ListNode(int val) { 7 * this.val = val; 8 * } 9 * } 10 * 11 */ 1... 阅读全文
posted @ 2017-03-02 12:23 fankongkong 阅读(861) 评论(0) 推荐(0) 编辑
摘要: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 阅读全文
posted @ 2017-03-02 12:20 fankongkong 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。public class ReplaceSpace { public String replaceSpace(StringBuffer str) { //1 char[] getstr = str.t... 阅读全文
posted @ 2017-02-26 22:02 fankongkong 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 阅读全文
posted @ 2017-02-26 21:09 fankongkong 阅读(256) 评论(0) 推荐(0) 编辑
摘要: Serial 进行垃圾收集时,必须暂停其他所有的工作进程,直到它收集结束。是一个单线程收集器。 Stop the world。 新生代收集器。 手工设置新生代的大小:-Xmn Eden与Survivor区的比例:-XX:SurvivorRatio 晋升老年代对象年龄:-XX:PretenureSiz 阅读全文
posted @ 2017-02-15 13:27 fankongkong 阅读(400) 评论(0) 推荐(0) 编辑
摘要: 1、 标记-清除算法 (Mark-Sweep) 分为两个阶段: 1、首先标记出所有需要回收的对象; 2、在标记完成后统一回收所有被标记的对象。 缺点: 1、效率问题:标记和清除两个过程效率都不高; 2、空间问题:标记清除之后会产生大量不连续的内存碎片,空间碎片太多可能会导致以后在程序运行过程中需要分 阅读全文
posted @ 2017-02-14 20:50 fankongkong 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 回收的类必须满足下面三个条件才能算是“无用的类” 1、该类所有的实例都已经被回收,也就是说Java堆中不存在该类的任何实例; 2、加载该类的ClassLoader已经被回收; 3、该类对应的java.lang.Class对象没有在任何地方被引用,无法在任何地方通过反射访问该类的方法。 阅读全文
posted @ 2017-02-14 19:41 fankongkong 阅读(2538) 评论(0) 推荐(0) 编辑
摘要: 1、代码架构图 2、qq.model层 3、qq.app层 4、qq.Constatnt层 5、qq.util层 6、qq.broadcast层 7、qq.control层 8、qq.view层 9、qq.net层 阅读全文
posted @ 2017-02-11 17:19 fankongkong 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 1、Android-UI事件传递就是这么个事儿 http://www.jianshu.com/p/8785ba891fea 2、Android中View绘制流程以及invalidate()等相关方法分析 3、Android自定义控件之基本原理 阅读全文
posted @ 2017-02-11 16:01 fankongkong 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 1、数据库用的mysql,一共有3张表,一张用户表user、一张朋友列表friend和一张消息表message。 2、服务器端架构 3、model包解析 4、db包解析 主要作用是加载类,获取mysql数据库的连接 5、util包解析 第一个类Packager 第二个类Parser 6、contro 阅读全文
posted @ 2017-02-11 15:22 fankongkong 阅读(3391) 评论(0) 推荐(0) 编辑
摘要: 1、一个进程就是一个正在运行的应用程序的实例,程序段+相关的数据段+PCB构成了进程实体。 2、进程由两个部分组成: (1)操作系统来管理这个进程的内核对象; (2)这个进程拥有的地址空间。 3、线程除了能够访问进程的资源外,每个进程还拥有自己的栈。 4、引入线程的好处:由于线程比进程更小,基本上不 阅读全文
posted @ 2017-02-09 20:01 fankongkong 阅读(163) 评论(0) 推荐(0) 编辑