数据结构与算法

Java 数据结构与算法,主要包括主流的数据结构分析和算法导读

Java数据结构和算法

chenssy阅读(753)评论(0)赞(2)

Java数据结构和算法(一)——简介 Java数据结构和算法(二)——数组 Java数据结构和算法(三)——冒泡、选择、插入排序算法 Java数据结构和算法(四)——栈 Java数据结构和算法(五)——队列 Java数据结构和算法(六)——...

Java数据结构和算法(一)——简介

chenssy阅读(437)评论(0)赞(0)

  本系列博客我们将学习数据结构和算法,为什么要学习数据结构和算法,这里我举个简单的例子。   编程好比是一辆汽车,而数据结构和算法是汽车内部的变速箱。一个开车的人不懂变速箱的原理也是能开车的,同理一个不懂数据结构和算法的人也能编程。但是如...

Java数据结构和算法(二)——数组

chenssy阅读(270)评论(0)赞(1)

  上篇博客我们简单介绍了数据结构和算法的概念,对此模糊很正常,后面会慢慢通过具体的实例来介绍。本篇博客我们介绍数据结构的鼻祖——数组,可以说数组几乎能表示一切的数据结构,在每一门编程语言中,数组都是重要的数据结构,当然每种语言对数组的实现...

Java数据结构和算法(四)——栈

chenssy阅读(204)评论(0)赞(0)

  前面我们讲解了数组,数组更多的是用来进行数据的存储,纯粹用来存储数据的数据结构,我们期望的是插入、删除和查找性能都比较好。对于无序数组,插入快,但是删除和查找都很慢,为了解决这些问题,后面我们会讲解比如二叉树、哈希表的数据结构。   而...

Java数据结构和算法(五)——队列

chenssy阅读(244)评论(0)赞(0)

  前面一篇博客我们讲解了并不像数组一样完全作为存储数据功能,而是作为构思算法的辅助工具的数据结构——栈,本篇博客我们介绍另外一个这样的工具——队列。栈是后进先出,而队列刚好相反,是先进先出。 1、队列的基本概念   队列(queue)是一...

Java数据结构和算法(六)——前缀、中缀、后缀表达式

chenssy阅读(186)评论(0)赞(0)

  前面我们介绍了三种数据结构,第一种数组主要用作数据存储,但是后面的两种栈和队列我们说主要作为程序功能实现的辅助工具,其中在介绍栈时我们知道栈可以用来做单词逆序,匹配关键字符等等,那它还有别的什么功能吗?以及数据结构与本篇博客的主题前缀、...

Java数据结构和算法(七)——链表

chenssy阅读(160)评论(0)赞(0)

  前面博客我们在讲解数组中,知道数组作为数据存储结构有一定的缺陷。在无序数组中,搜索性能差,在有序数组中,插入效率又很低,而且这两种数组的删除效率都很低,并且数组在创建后,其大小是固定了,设置的过大会造成内存的浪费,过小又不能满足数据量的...

Java数据结构和算法(八)——递归

chenssy阅读(211)评论(0)赞(0)

  记得小时候经常讲的一个故事:从前有座山,山上有座庙,庙里有一个老和尚和一个小和尚,一天,老和尚给小和尚讲了一个故事,故事内容是“从前有座山,山上有座庙,庙里有一个老和尚和一个小和尚,一天,老和尚给小和尚讲了一个故事,故事内容.........

Java数据结构和算法(十)——二叉树

chenssy阅读(245)评论(0)赞(0)

  接下来我们将会介绍另外一种数据结构——树。二叉树是树这种数据结构的一员,后面我们还会介绍红黑树,2-3-4树等数据结构。那么为什么要使用树?它有什么优点?   前面我们介绍数组的数据结构,我们知道对于有序数组,查找很快,并介绍可以通过二...

Java数据结构和算法(十一)——红黑树

chenssy阅读(297)评论(0)赞(0)

  上一篇博客我们介绍了二叉搜索树,二叉搜索树对于某个节点而言,其左子树的节点关键值都小于该节点关键值,右子树的所有节点关键值都大于该节点关键值。二叉搜索树作为一种数据结构,其查找、插入和删除操作的时间复杂度都为O(logn),底数为2。但...

Java数据结构和算法(十二)——2-3-4树

chenssy阅读(144)评论(0)赞(0)

  通过前面的介绍,我们知道在二叉树中,每个节点只有一个数据项,最多有两个子节点。如果允许每个节点可以有更多的数据项和更多的子节点,就是多叉树。本篇博客我们将介绍的——2-3-4树,它是一种多叉树,它的每个节点最多有四个子节点和三个数据项。...

Java数据结构和算法(十三)——哈希表

chenssy阅读(179)评论(0)赞(0)

  Hash表也称散列表,也有直接译作哈希表,Hash表是一种根据关键字值(key - value)而直接进行访问的数据结构。它基于数组,通过把关键字映射到数组的某个下标来加快查找速度,但是又和数组、链表、树等数据结构不同,在这些数据结构中...

Java数据结构和算法(十四)——堆

chenssy阅读(171)评论(0)赞(0)

  在Java数据结构和算法(五)——队列中我们介绍了优先级队列,优先级队列是一种抽象数据类型(ADT),它提供了删除最大(或最小)关键字值的数据项的方法,插入数据项的方法,优先级队列可以用有序数组来实现,这种实现方式尽管删除最大数据项的时...

Java数据结构和算法(十五)——无权无向图

chenssy阅读(154)评论(0)赞(0)

  前面我们介绍了树这种数据结构,树是由n(n>0)个有限节点通过连接它们的边组成一个具有层次关系的集合,把它叫做“树”是因为它看起来像一棵倒挂的树,包括二叉树、红黑树、2-3-4树、堆等各种不同的树,有对这几种树不了解的可以参考我前...