博客专栏  >  编程语言   >  数据结构与算法

数据结构与算法

介绍基础的排序搜索算法,分析JDK相关数据结构的实现

关注
5 已关注
15篇博文
  • 红黑树-TreeMap

    1.原理 排序二叉树 排序二叉树是一种特殊结构的二叉树,可以非常方便地对树中所有节点进行排序和检索。 排序二叉树要么是一棵空二叉树,要么是具有下列性质的二叉树: ...

    2016-11-30 16:47
    935
  • 顺序存储与链式存储的集合-HashMap、HashTable

    HashMap,日常最常用的数据结构之一。它是基于哈希表的 Map 接口的实现,以key-value的形式存在。在HashMap中,key-value总是会当做一个整体来处理,系统会根据hash算法来...

    2016-11-24 18:27
    1209
  • 线性存储结构-LinkedList

    LinkedList内部采用链表的形式构建,是一个双向链表。除了继承List外,还继承了Deque接口,可以当做堆栈结构使用。 private static final class Link { ...

    2016-11-14 16:46
    984
  • 线性存储结构-Stack

    Stack继承于Vector,是一个模拟堆栈结构的集合类。当然也属于顺序存储结构。这里注意Android在com.android.layoutlib.bridge.impl包中也有一个Stack的实现...

    2016-11-14 16:43
    689
  • 线性存储结构-ArrayList、Vector

    ArrayList:采用数组的内部构建形式,也就是顺序存储模式。当新增一个对象时,如果当前长度超过预设,会使用System.arraycopy(定义一个更长的数组进行复制处理),这个时候开销比较大。 ...

    2016-11-14 16:41
    809
  • 排序算法总结

    1.排序算法分类 基础的排序算法包含冒泡排序、选择排序、插入排序、希尔排序、堆排序、归并排序及快速排序。 根据实现类型可分为插入排序类、选择排序类、交换排序类及归并排序类。 2.排序算法...

    2016-12-24 15:19
    2197
  • 排序算法-快速排序

    快速排序(Quick Sort) 通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小, 则可分别对这部分记录继续进行排序,以达到整个序列有序的目的 最好情况...

    2016-12-24 11:26
    2099
  • 排序算法-归并排序

    归并排序(Merging Sort)利用归并的思想实现的排序方法。它的原理是假设初始序列含有n个记录,则可以看成是n个有序的子序列,每个子序列长度为1,然后两两归并,得到[n/2]个长度为2或1的有序...

    2016-12-16 17:36
    2088
  • 排序算法-堆排序

    堆排序(Heap Sort) 堆是具有下列性质的完全二叉树:每个节点的值都大于或等于其左右孩子节点的值,称为大顶堆,或者每个节点的值都小于或等于其左右孩子节点的值,称为小顶堆。 堆排序的基本思想是...

    2016-12-14 23:25
    2046
  • 排序算法-希尔排序

    希尔排序(Shell Sort)升级版的插入排序,先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插人排序;然后,取第...

    2016-12-12 17:43
    1984
  • 排序算法-插入排序

    插入排序(Insert Sort)直接插入排序的基本操作是将一个记录插入到已经排好的有序表中,从而得到一个新的、记录数增1的有序表,类似打扑克牌排列表。 时间复杂度:      1)最好情况o(n...

    2016-12-12 17:42
    1821
  • 排序算法-选择排序

    简单选择排序(Simple Selection Sort)就是通过n-i次关键字的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1  时间复杂度:      1) 最好情况:本身有序,...

    2016-12-12 17:36
    1750
  • 排序算法-冒泡排序

    冒泡排序(Bubble BubbleSort)是一种交换排序,他的基本思路是: 两两比较相邻记录的关键字,如果反序则交换。 时间复杂度:      1)最好情况:本身有序,需要比较n-1次 时间复...

    2016-12-12 17:26
    1692
  • 查找算法-稠密索引、分块索引、倒排索引

    1.稠密索引 稠密索引时指在线性索引中,将数据集中的每个记录都对应一个索引项 。对于索引项一定是按照关键码有序的排列 索引项有序意味着可以使用顺序查找算法,这是稠密索引的有点, 但是如果数据集非常大...

    2016-12-10 10:28
    2003
  • 查找算法-顺序查找、有序查找

    1.顺序表的查找 1)顺序查找 顺序查找又称为线性查找,是一种最简单的查找方法。         从表的一端开始,向另一端逐个按要查找的值key 与关键码key进行比较,若找到,查找...

    2016-12-06 16:15
    1818

img博客搬家
img撰写博客
img专家申请
img意见反馈
img返回顶部