算法及数据结构
朝闻道_
这个作者很懒,什么都没留下…
展开
-
LinkedList的简单重写
LinkedList利用一个静态内部类对象进行数据的存储,并且保存前节点和后节点的引用,同时在外部指定好链表的开头以及结尾,当执行插入操作的时候,更改前后引用即可,所以LinkedList在执行插入和删除动作的时候比较高效,如果是执行查询操作则稍微慢点,因为需要从头或者从尾开始遍历元素,然后返回,如果是需要修改该元素的,则需要查找找该元素再进行修改,这样效率也会稍低,但是链表不存在扩容上的问题,还...原创 2018-02-15 15:53:32 · 792 阅读 · 0 评论 -
LinkedHashMap 双向链表
http://www.importnew.com/18726.html转载 2018-02-27 21:07:07 · 917 阅读 · 0 评论 -
归并排序
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。[cpp] view plain copy//将有序数组a[]和b[]合并到...转载 2018-04-03 14:29:18 · 108 阅读 · 0 评论 -
归并排序
基本思想n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果:初始状态:无序区为R[1..n],有序区为空。第1趟排序: 在无序区R[1..n]中选出关键字最小的记录R[k],将它与无序区的第1个记录R[1] 交换,使R[1..1]和R[2..n]分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区。……第i趟排序: 第i趟排序开始时,当前有序区和无序区分别为R[1..i-...转载 2018-04-03 14:45:05 · 134 阅读 · 0 评论 -
二叉树的问题
写作目的:本博客的目的是认识和复习数据结构中的平衡二叉树和红黑树,以及由红黑树实现的TreeSet和TreeMap1.二叉搜索树的弊端二叉搜索树的查找,插入,删除的复杂度等于树的高度,时间复杂度是O(log(n)).但是,对于同一组数据,插入顺序的不同,可能会导致二叉搜索树的高度不同。如果是有序插入,二叉搜索树退化成链表,其查找的时间复杂度退化为O(n).图 插入顺序不同对二叉搜索树的影响2.平衡...转载 2018-04-23 14:19:12 · 333 阅读 · 0 评论 -
二叉树的通俗版本
前言 红黑树,对不少人来说是个比较头疼的名字,在网上搜资料也很少有讲清楚其演变来源的,多数一上来就给你来五条定义,红啊黑啊与根节点距离相等之类的,然后就开始进行旋转、插入、删除这些操作。一通操作下来,连红色和黑色怎么来的,是什么含义,有什么作用都云里雾里的,能搞清楚就怪了。 本文介绍红黑树,暂时不涉及任何代码,只是帮助你理解红黑树的演变来源,树结构中红黑色具体含义,保证你理解了...转载 2018-04-23 15:07:55 · 376 阅读 · 1 评论