自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (2)
  • 收藏
  • 关注

原创 二叉树的非递归遍历

二叉树是一种经典的数据结构,各大公司面试的时候也喜欢考,我将我所总结积累的二叉树的几种非递归遍历分享一下,欢迎大家提出更多更好的方法:一、先序遍历方法一,思想是从根节点一直向左边走,边走边打印,左边走不通了,出栈向右边走,边界条件是current!=null或者栈非空public void preOrder1(){ if(root==null) return; Node

2015-10-09 11:21:56 408

转载 B树、B-树、B+树、B*树

B树       即二叉搜索树:       1.所有非叶子结点至多拥有两个儿子(Left和Right);       2.所有结点存储一个关键字;       3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;       如:              B树的搜索,从根结点开始,如果查询的关键字与结点的关

2015-06-26 16:41:54 386

原创 01背包的几种解法(未完待续)

01背包问题,背包容量为capacity,n种物品,物品重量数组w[],物品价值数组v[],求在该背包容量内可以装的所有物品价值的最大值?简单说几种方法,第一个是暴力,遍历所有物品的所有组合,筛选出最大值。时间复杂度O(2的n次方)第二是动态规划,采用备忘录的方法记录了重复子问题的解,从而降低了时间复杂度,为O(capacity*n),有一个缺点只适用于所有参数为整数。动态规划可以

2015-06-18 15:12:31 2752

转载 各种排序算法稳定性分析

PS:这是来自转载的转载,具体出处已不得而知。分析一下常见的排序算法的稳定性,每个都给出简单的理由。   (1)冒泡排序        冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,我想你是不会再无聊地把他们俩交换一下的;如果两个相等的元素没有相邻,那么即使通过前面的两两交

2015-06-18 13:22:31 504

原创 直接插入排序与直接选择排序

直接插入排序和直接选择排序没啥可说的,上代码。直接插入排序可以做一点点优化,即a[0]=temp,可以作为哨兵位,不用老是判断是否遍历到下标0了:package sort;public class InsertSort { private long[] a; private int elmentN; public InsertSort(int max){ a=new

2015-06-18 13:02:22 986

原创 归并排序和希尔排序

一、归并排序归并排序的时间复杂度为O(nlogn) 这是该算法中最好、最坏和平均的时间性能。其中比较操作的次数介于(nlogn) / 2和nlogn - n + 1(在每次归并中比较次数不一样)。赋值操作的次数是(2nlogn)。归并算法的空间复杂度为:0 (n)归并排序比较占用内存,但却是一种效率高且稳定的算法。编程中注意,很多人写的函数中都建立了许多局部数组碎片,这

2015-06-18 12:38:50 1691

原创 快速排序

快速排序法=挖坑填数法+分冶法,每一趟排序都是一个不断挖坑填坑的过程,每一趟都有一个数确定了它的最终位置。一般情况为O(nlogn),最坏情况是原序列已经有序,效率降为N*N。代码简单,但还是要一些注意:一、快排注意quickSort函数(start二、在partition函数中,退出循环的界限应该以low==high为最好1.要考虑到数组中有几个数的数值一样

2015-06-18 12:23:29 435

原创 堆排序分析

关于堆排序,时间空间复杂度大家都知道就不说了,堆排序涉及到两种遍历的方式,以小顶堆为例简单的讲一下:(1)向上遍历,如果我们采取不断的向一个空数组中插入数值的方式来初始化堆,为了保持小顶堆的性质,新插入的数值就要不断向堆的上方搜索,插入到新的位置(2)向下遍历向下遍历的发生有两种情况,一是已知一个未排序的数组,为了将该数组变成小顶堆,那么从最后一个拥有子节点的节点开始,向该节点

2015-06-18 11:03:17 627 1

原创 冒泡排序的三种方法

冒泡排序是很简单的,原理就不说了,但是简单的东西也可以搞得复杂。那么下面是三种实现方法:package Sort;/*排序算法的耗时体现 一在于数值比较,二在于数据交换,比较比交换更耗时。冒泡排序的比较次数为N*N/2,交换次数随机情况下为N*N/4 */public class BubbleSort { private long[] a; private int elmentN;

2015-06-18 10:07:03 514

原创 数据库四大范式

数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。反之则是乱七八糟,不仅给数据库的编程人员制造麻烦,而且面目可憎,可能存储了大量不需要的冗余信息。 范式说明 1.1 第一范式(1NF)无重复的列     所谓第一范式(1NF)是指数据库表的每一列都是

2014-07-21 11:16:16 1737

原创 JAVA类集

ArrayList Vector LinkedList 区别与用法ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢,Vector由于使用了synchronized方法(线程安全)所以性能上比ArrayList要差,LinkedList使

2014-07-21 11:01:18 515

原创 数据库系统中事务的ACID原则

或者:

2014-07-21 10:46:56 715

原创 JAVA IO总结

1.    File类1.1常用方法Public static final StringpathSeparatorPublic static final StringseparatorPublic File(String pathname)Public Boolean createNewFile()throws IOException//通过给定路径建立文件Public B

2014-07-21 10:13:50 526

今日头条仿网易新闻TopNews

仿网易新闻客户端app,实现了主要功能,so easy

2014-12-22

模仿QQ聊天软件socket实现安卓APP

模仿QQ聊天软件socket实现,功能简洁,便于新手学习,尽快入手

2014-12-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除