随笔分类 -  数据结构与算法

摘要:队列(queue)是一种采用先进先出(FIFO)策略的抽象数据结构,即最先进队列的数据元素,同样要最先出队列。队列跟我们排队买票一样,先来排队的肯定先买票,后来排队的的后买到票。队列如下图所示: 队列有两个重要的概念,一个叫队头,一个叫队尾,队头指向的是第一个元素,而队尾指向的是最后一个元素。队列跟 阅读全文
posted @ 2019-08-30 21:31 平头哥的技术博文 阅读(1284) 评论(0) 推荐(1) 编辑
摘要:看官,不要生气,我没有骂你也没有鄙视你的意思,今天就是想单纯的给大伙分享一下树的相关知识,但是我还是想说作为一名程序员,自己心里有没有点树?你会没点数吗?言归正传,树是我们常用的数据结构之一,树的种类很多有二叉树、二叉查找树、平衡二叉树、红黑树、B树、B+树等等,我们今天就来聊聊二叉树相关的树。 什 阅读全文
posted @ 2019-08-23 19:48 平头哥的技术博文 阅读(927) 评论(1) 推荐(4) 编辑
摘要:数据结构中的栈不要与 Java 中的栈混淆,他们俩不是一回事,数据结构中的栈是一种受限制的线性表,栈具有先进后出、后进先出的特点,因为栈只允许访问最后一个数据项,即最后插入的数据项。也许你会有疑问,栈既然有这么多限制,为什么不用数组或者链表而使用栈?在开发中,我们有特定的场景,根据特定的场景去选用数 阅读全文
posted @ 2019-08-23 16:01 平头哥的技术博文 阅读(961) 评论(0) 推荐(0) 编辑
摘要:在做业务开发时,遇到了一个事务不起作用的问题。大概流程是这样的,方法内部的定时任务调用了一个带事务的方法,失败后事务没有回滚。查阅资料后,问题得到解决,记录下来分享给大家。 场景 我在这里模拟一个场景,大概的调用方式就如下面的代码这样。 原因 使用的是动态代理的机制,它会给类生成一个代理类,事务的相 阅读全文
posted @ 2019-08-23 09:38 平头哥的技术博文 阅读(8118) 评论(3) 推荐(1) 编辑
摘要:哈希表简介 哈希表也叫散列表,哈希表是一种数据结构,它提供了快速的插入操作和查找操作,无论哈希表总中有多少条数据,插入和查找的时间复杂度都是为O(1),因为哈希表的查找速度非常快,所以在很多程序中都有使用哈希表,例如拼音检查器。 哈希表也有自己的缺点,哈希表是基于数组的,我们知道数组创建后扩容成本比 阅读全文
posted @ 2019-08-22 22:52 平头哥的技术博文 阅读(1082) 评论(0) 推荐(1) 编辑
摘要:跳表的原理 跳表也叫跳跃表,是一种动态的数据结构。如果我们需要在有序链表中进行查找某个值,需要遍历整个链表,二分查找对链表不支持,二分查找的底层要求为数组,遍历整个链表的时间复杂度为O(n)。我们可以把链表改造成B树、红黑树、AVL树等数据结构来提升查询效率,但是B树、红黑树、AVL树这些数据结构实 阅读全文
posted @ 2019-08-22 22:48 平头哥的技术博文 阅读(3234) 评论(0) 推荐(1) 编辑
摘要:原理 二分查找(Binary Search)算法,也叫折半查找算法。二分查找的思想非常简单,有点类似分治的思想。二分查找针对的是一个有序的数据集合,每次都通过跟区间的中间元素对比,将待查找的区间缩小为之前的一半,直到找到要查找的元素,或者区间被缩小为 0。 为了方便理解,我们以数组 ,在数组中查找 阅读全文
posted @ 2019-08-22 22:43 平头哥的技术博文 阅读(579) 评论(0) 推荐(0) 编辑
摘要:冒泡排序(Bubble Sort) 原理 冒泡排序只会操作相邻的两个数据。每次冒泡操作都会对相邻的两个元素进行比较,看是否满足大小关系要求。如果不满足就让它俩互换。一次冒泡会让至少一个元素移动到它应该在的位置,重复 n 次,就完成了 n 个数据的排序工作。 图解 图片来源网络,侵权即删 性能 时间复 阅读全文
posted @ 2019-08-22 22:33 平头哥的技术博文 阅读(483) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示