自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 堆排序

堆排序分为变成大根堆还是小根堆; 大根堆就是跟节点大于左右子节点就ok,小根堆跟它相反,根节点小于左右子节点; 有一个无序的树(就是你要排序的数组,放在树里),你想要对它进行排序的话,首先要确定从大到小还是从小到大,因为这个分别对应大根堆还是小跟堆; 随便说一个,就说变成大根堆(从大到小):首先一个无序的树,你找到最下面一层的节点,每两个子节点或一个子节点和他们的父节点都看成一个单位,在这一

2015-09-12 15:07:25 312

原创 直接插入排序,折半插入排序,希尔排序

这三种都属于插入排序;     1.直接插入排序就是先拿出两个排好序,然后再依次加入这个有序序列中,比较简单,但是时间复杂度为O(n2);     2.折半插入排序是在直接插入排序的基础上改进的,每次插入到有序序列的时候,用折半查找找到要插入的位置,然后插入,能稍微快一点;     3.希尔排序(缩小增量排序)每次选一个增量,这个增量为上一次的一半,第一次为排序个数的一半,就是每次隔增量个位

2015-09-11 22:29:36 507

原创 二叉排序树相关操作

二叉排序树定义就是左子树比根小,右子树比根大; 中序遍历出来的书递增的有序序列;      先说它的查找:类似于二分查找,时间复杂度为logN,这个很好理解吧,就是拿你要找的数从根比,大的话走右面,小的话走左面,每次减少一半;      再说它的插入:只要这个节点不是最底层的节点(就是这个节点下面没有其他节点了),就跟它比较如果小于就往左走,如果大于就往有走,走到空时插入; java实现:

2015-09-11 18:26:06 267

原创 sleep和wait的区别

如果这下面说的看不太懂,可以先去看一下上一篇可能会好一点; 线程调用了wait()方法的话,该线程将会自己所有的锁标记和CPU的占用,并且进入等待池(wait pool),等待池的状态是阻塞状态; 顺便说一下对应的notify()方法,会从等待池中释放一个线程,这个线程是有系统决定的 ,让该线程进入该对象的锁池(lock pool),等待得到锁标记,然后再执行;notifyall()方法取代n

2015-09-01 15:47:45 347

原创 synchronized和lock的区别

先说一下什么是同步(synchronized和lock都是实现这个的):           每一个对象都有一个互斥的锁标记和一个锁池,哪个线程拥有锁标记哪个才能访问,没有锁标记的线程就进入锁池,保证同步代码块中只有一个线程      synchronized修饰的代码块是对括号内的对象加锁,只有拥有锁标记的线程能访问;      synchronized修饰的函数方法是整个方法范围内对当前

2015-09-01 14:26:23 924

空空如也

空空如也

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

TA关注的人

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