- 博客(27)
- 资源 (8)
- 收藏
- 关注
原创 快速排序的java实现
1.算法思想通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。2.实现思路。①以第一个关键字 K 1 为控制字,将 [K 1 ,K 2 ,…,K n ] 分成两个子区,使左区所有关键字小于等于 K 1 ,右区所有关键字大于等于 K 1
2016-03-23 10:08:12 389
原创 LintCode:二叉树的后序遍历
给出一棵二叉树,返回其节点值的后序遍历。样例给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3返回 [3,2,1]挑战你能使用非递归实现么?/** * Definition of TreeNode: * public class TreeNode { * public int val;
2015-12-15 16:19:53 401
原创 LintCode:把排序数组转换为高度最小的二叉搜索树
给一个排序数组(从小到大),将其转换为一棵高度最小的排序二叉树。样例给出数组 [1,2,3,4,5,6,7], 返回 4 / \ 2 6 / \ / \1 3 5 7挑战可能有多个答案,返回任意一个即可/** * Definition of TreeNode: * public class Tree
2015-12-15 15:11:55 488
原创 LintCode:两个字符串是变位词
写出一个函数 anagram(s, t) 去判断两个字符串是否是颠倒字母顺序构成的样例:给出 s="abcd",t="dcab",返回 true代码:public class Solution { /** * @param s: The first string * @param b: The second string *
2015-12-11 13:14:40 698
原创 LintCode: x的平方根
实现 int sqrt(int x) 函数,计算并返回 x 的平方根。样例sqrt(3) = 1sqrt(4) = 2sqrt(5) = 2sqrt(10) = 3挑战O(log(x))class Solution { /** * @param x: An integer * @return: The sq
2015-12-08 16:19:02 519
原创 Swap Nodes in Pairs
Given a linked list, swap every two adjacent nodes and return its head.样例Given 1->2->3->4, you should return the list as 2->1->4->3.挑战Your algorithm should use only constant space. Y
2015-12-08 14:39:52 286
原创 二分查找
给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回-1。样例在数组 [1, 2, 3, 3, 4, 5, 10] 中二分查找3,返回2。挑战如果数组中的整数个数超过了2^32,你的算法是否会出错?class Solution {
2015-12-07 11:28:17 639
原创 归并排序的java实现
算法思想:把待排数列分成两部分,排序每一部分,然后将排序后的两部分合并。递归地进行这个过程。时间复杂度:O(N*logN)代码:import java.util.*;class mergeSort { public static int[] sort(int[] theArray, int lowerBound, int higherBound) { int mid = (
2015-12-03 11:33:32 322
原创 斐波纳契数列
要求:查找斐波纳契数列中第 N 个数。所谓的斐波纳契数列是指:前2个数是 0 和 1 。第 i 个数是第 i-1 个数和第i-2 个数的和。斐波纳契数列的前10个数字是:0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ...斐波那契数列通项公式:F(n)=F(n-1)+F(n-2)代码(非递归实现):class Solution {
2015-12-01 17:20:20 464
原创 Remove Linked List Elements
要求Remove all elements from a linked list of integers that have valueval.样例Given 1->2->3->3->4->5->3, val = 3, you should return the list as1->2->4->5代码public class So
2015-12-01 16:35:30 338
原创 一个简单的基于数组优先级队列的Java代码
优先级队列与普通的队列相比,区别在于他的数据项按关键字的值有序排列,数据项在插入的时候会按照顺序插入到合适的位置以确保队列的顺序。像普通的队列一样,优先级队列在某些计算机系统中也有很多应用。优先级队列通常使用堆来实现,下列代码是基于数组的一个简单优先级队列的实现。import java.io.*;class PriorityQueue{ private int maxSize; pr
2015-12-01 11:13:49 1104
原创 插入排序的Java实现
算法思想:插入排序基于一个前提条件:局部有序,数列中有一个标记的成员,在这个成员的左边,左右的数据都已经按照顺序排列好了,插入算法要做的就是依次比较标记成员与他左边的数据的值,因为标记成员左边的数据已经有序,所以可以通过比较值来确定标记成员的插入位置。效率:需要平均N*(N-1)/(2*2)次比较,时间O(N²)class insertSort{public static voi
2015-11-27 09:44:51 297
原创 选择排序的Java实现
算法思想:将待排数据从头扫描一遍,从中选出最小值,放在数列最左端,即从数列最左端开始排序效率:选择排序和冒泡排序一样运行了O(N²)时间,但是选择排序进行的交换次数远小于冒泡排序。class selectionSort{public static void main(String[] args){ selectionSortfun();}private static voi
2015-11-25 14:52:05 302
原创 冒泡排序的java实现
冒泡排序(BubbleSort)算法思想:在待排序列中,通过循环比较相邻的两个待排元素,将值大的放到值小的右边,从而使得数列有序。不变性:在许多算法中,有些条件在算法执行时是不变的,这些条件被称为不变性。在冒泡排序中,不变性指外层循环条件out右边的所有数据为有序。效率:交换和比较次数都和N²成正比,运行时间为O(N²)class bubbleSort{
2015-11-25 14:06:45 323
转载 java中的IO操作
在使用io操作之前,先看一下java中的文件类File如何使用。File包括文件和目录,对文件和目录的操作是新建目录mkdir,新建文件createNewFile,删除文件和目录delete,以及其他的一些操作。package zaojiahua;import java.io.File;import java.io.IOException;/* 对文件类的操作 */public c
2015-08-12 13:29:39 326
转载 ListView中convertView和ViewHolder的工作原理
LsitView和Adapter参考:http://www.cnblogs.com/xiaowenji/archive/2010/12/08/1900579.html工作原理: 1.ListView针对List中每个item,要求adapter给我一个视图(getView) 2.一个新的视图被返回并显示如果我们有上亿个item要显示怎么办?为每个项目创建一个新视图?NO
2015-05-27 13:51:21 480
转载 Android StrictMode 检测
StrictMode是Android为了提高性能,当在主线程进行了IO、网络等操作是,进行的严格模式检测。StrictMode有两两种级别的policy检测,Thread和dalvikvm,开启方式如下: Thread policy: strictmode.setthreadpolicy(new strictmode.threadpolicy.builder(
2015-05-22 22:18:46 688
转载 SurfaceHolder.Callback
一 前文概要说明 首先得简单说明一下Surface与SurfaceHolder.Callback之间的联系。 Surface是android的一个重要元素,用于android画面的图形绘制。而SurfaceView是视图(View)的一个继承类,每一个SurfaceView都内嵌封装一个Surface。通过调用SurfaceHolder可以调用SurfaceView,控制图形的尺
2015-05-12 16:00:08 390
转载 浅谈HTTP中Get与Post的区别
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。 1.根
2015-05-11 16:58:43 301
转载 Java中实现多态的机制是什么
靠的是父类或接口定义的引用变量可以指向子类或具体实现类的实例对象,而程序调用的方法在运行期才动态绑定,就是引用变量所指向的具体实例对象的方法,也就是内存里正在运行的那个对象的方法,而不是引用变量的类型中定义的方法。
2015-05-11 15:00:13 355
原创 Android - LayoutInflater
LayoutInflater 是一个抽象类,在文档中如下声明: public abstract class LayoutInflater extends Object 具体作用: 1、对于一个没有被载入或者想要动态载入的界面,都需要使用LayoutInflater.inflate()来载入;2、对于一个已经载入的界面,就可以使用Activiyt.findViewById()方法来获
2015-05-08 21:33:26 302
转载 Activity的四种启动模式
Android之Activity的四种启动模式当应用运行起来后就会开启一条线程,线程中会运行一个任务栈,当Activity实例创建后就会放入任务栈中。Activity启动模式的设置在AndroidManifest.xml文件中,通过配置Activity的属性android:launchMode=""设置。 1. Standared模式(默认)我们平时直接创建的Activity都是这
2015-05-08 15:35:18 327
转载 什么是ANR 如何避免它?
ANR定义 在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。用户可以选择让程序继续运行,但是,他们在使用你的应用程序时,并不希望每次都要处理这个对话框。因此,在程序里对响应性能的设计很重要,这样,系统不会显示ANR给用户。 如
2015-05-08 15:12:28 1828
原创 eclipse 常用快捷键
最常用实用1、Alt + /做为内容辅助提示,估计无人不用,当然它还可以用来做一些快速输入,比如初学者用得最多的System.out.println(),只要输入syso然后按此组合键,就自动完成并且将光标定位到括号内,其实一些常用的一些结构都可以用这个方法输入,比如for, try …catch等等,只要是在preference – java – editor – template中定义
2015-05-08 14:57:06 281
原创 eclipse快捷键
Ctrl + Shift + O: 引入imports语句Ctrl + Shift + T: 打开Open Type查找类文件Ctrl + Shift + F4: 关闭打开的所有窗口Ctrl + Shift + F: 整形Ctrl + Alt + ↓(↑) :向下(上)复制本行 (搞笑)Ctrl + D : 删除本行 Ctrl + O: Open declaration
2015-05-08 13:40:36 274
原创 Android官方开发文档地址
http://developer.android.com/reference官方最全的开发文档,但是好像暂时打不开
2015-05-07 21:09:06 364
JavaSE基础毕向东老师全程笔记.doc
2017-09-23
大型网站技术架构:核心原理与案例分析
2017-09-22
编程字体yahei_mono
2017-09-22
dbeaver-ee-4.1.0
2017-09-22
深入理解Java虚拟机
2017-09-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人