
Java-算法与数据结构
文章平均质量分 94
被拯救的威尼斯
这个作者很懒,什么都没留下…
展开
-
java-数据结构与算法-02-数据结构-07-优先队列
kn-1},把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中,并满足:Ki <= K2i+1 且 Ki<= K2i+2 (Ki >= K2i+1 且 Ki >= K2i+2) i = 0,1,2…队列是一种先进先出的结构,但是有些时候,要操作的数据带有优先级,一般出队时,优先级较高的元素先出队,这种数据结构就叫做优先级队列。比如:你在打音游的时候,你的朋友给你打了个电话,这种时候,就应该优先处理电话,然后再来继续打音游,此时,电话就是优先级较高的。给你一个链表数组,每个链表都已经按升序排列。原创 2024-07-30 21:00:00 · 1912 阅读 · 0 评论 -
java-数据结构与算法-02-数据结构-06-双端队列
双端队列、队列、栈对比Java 中 LinkedList 即为典型双端队列实现,不过它同时实现了 Queue 接口,也提供了栈的 push pop 等方法不同语言,操作双端队列的方法命名有所不同,参见下表接口定义/*** 双端队列接口* 双端队列是一种可以在其两端进行添加和移除元素的线性数据结构。* 该接口定义了在队列的首端和尾端进行操作的方法。* @param <E> 队列中元素的类型*/ /*** 双端队列接口* @param <E> 队列中元素类型/**原创 2024-07-29 17:28:49 · 744 阅读 · 0 评论 -
java-数据结构与算法-02-数据结构-05-栈
计算机科学中,stack 是一种线性的数据结构,只能在其一端添加数据和移除数据。习惯来说,这一端称之为栈顶,另一端不能操作数据的称之为栈底,就如同生活中的一摞书栈是一种特殊的线性表,只能在一端进行操作往栈中添加元素的操作,一般叫做 push,入栈从栈中移除元素的操作,一般叫做 pop,出栈(只能移除栈顶元素,也叫做:弹出栈顶元素)后进先出的原则,Last In First Out,LIFO先提供一个栈接口/*** 向栈顶压入元素* @param value 待压入值。原创 2024-07-25 17:51:23 · 340 阅读 · 0 评论 -
java-数据结构与算法-02-数据结构-04-队列
计算机科学中,queue 是以顺序的方式维护的一组数据集合,在一端添加数据,从另一端移除数据。习惯来说,添加的一端称为尾,移除的一端称为头,就如同生活中的排队买商品先定义一个简化的队列接口/*** 向队列尾插入值* @param value 待插入值* @return 插入成功返回 true, 插入失败返回 false/*** 从对列头获取值, 并移除* @return 如果队列非空返回对头值, 否则返回 null/*** 从对列头获取值, 不移除。原创 2024-07-16 11:33:29 · 802 阅读 · 0 评论 -
java-数据结构与算法-02-数据结构-03-递归
定义计算机科学中,递归是一种解决计算问题的方法,其中解决方案取决于同一类问题的更小子集return;自己调用自己,如果说每个函数对应着一种解决方案,自己调用自己意味着解决方案是一样的(有规律的)每次调用,函数处理的数据会较上次缩减(子集),而且最后会缩减至无需继续递归内层函数调用(子集处理)完成,外层函数才能算调用完成原理假设链表中有 3 个节点,value 分别为 1,2,3,以上代码的执行流程就类似于下面的伪码return;思路确定能否使用递归求解。原创 2024-07-08 15:46:42 · 830 阅读 · 0 评论 -
java-数据结构与算法-02-数据结构-02-链表
定义在计算机科学中,链表是数据元素的线性集合,其每个元素都指向下一个元素,元素存储上并不连续可以分类为单向链表,每个元素只知道其下一个元素是谁双向链表,每个元素知道其上一个元素和下一个元素循环链表,通常的链表尾节点 tail 指向的都是 null,而循环链表的 tail 指向的是头节点 head链表内还有一种特殊的节点称为哨兵(Sentinel)节点,也叫做哑元( Dummy)节点,它不存储数据,通常用作头尾,用来简化边界判断,如下图所示随机访问性能根据 index 查找,时间复杂度On。原创 2024-06-27 11:28:31 · 755 阅读 · 0 评论 -
java-数据结构与算法-02-数据结构-01-数组
定义在计算机科学中,数组是由一组元素(值或变量)组成的数据结构,每个元素有至少一个索引或键来标识知道了数组的数据起始地址BaseAddressBaseAddress,就可以由公式BaseAddressi∗sizeBaseAddressi∗size计算出索引iii元素的地址iii即索引,在 Java、C 等语言都是从 0 开始sizesizesize是每个元素占用字节,例如intintin。原创 2024-06-17 15:04:27 · 798 阅读 · 0 评论 -
java-数据结构与算法-01-初识算法
定义在数学和计算机科学领域,算法是一系列有限的严谨指令,通常用于解决一类特定问题或执行计算不正式的说,算法就是任何定义优良的计算过程:接收一些值作为输入,在有限的时间内,产生一些值作为输出。定义在计算机科学领域,数据结构是一种数据组织、管理和存储格式,通常被选择用来高效访问数据数据结构是一种存储和组织数据的方式,旨在便于访问和修改可以说,程序 = 数据结构 + 算法,它们是每一位程序员的基本功,下面我们通过对一个非常著名的二分查找算法的讲解来认识一下算法。原创 2024-06-13 22:00:00 · 1067 阅读 · 0 评论