文章 2022-06-13 来自:开发者社区

看动画学算法之:二叉搜索树BST

目录简介BST的基本性质BST的构建BST的搜索BST的插入BST的删除简介树是类似于链表的数据结构,和链表的线性结构不同的是,树是具有层次结构的非线性的数据结构。树是由很多个节点组成的,每个节点可以指向很多个节点。如果一个树中的每个节点都只有0,1,2个子节点的话,这颗树就被称为二叉树,如果我们对...

看动画学算法之:二叉搜索树BST
文章 2022-06-13 来自:开发者社区

看动画学算法之:hashtable

目录简介散列表的关键概念数组和散列表数组的问题hash的问题线性探测二次探测双倍散列分离链接rehash简介java中和hash相关并且常用的有两个类hashTable和hashMap,两个类的底层存储都是数组,这个数组不是普通的数组,而是被称为散列表的东西。散列表是一种将键映射到值的数据结构。它用哈希函数来将键映射到小范围的指数(一般为[0..哈希表大...

看动画学算法之:hashtable
文章 2022-06-13 来自:开发者社区

看动画学算法之:双向队列dequeue

目录简介双向队列的实现双向队列的数组实现双向队列的动态数组实现双向队列的链表实现双向链表的时间复杂度简介dequeue指的是双向队列,可以分别从队列的头部插入和获取数据,也可以从队列的尾部插入和获取数据。本文将会介绍一下怎么创建dequeue和dequeue的一些基本操作。双向队列的实现和普通队列项目,双向队列可以分别在头部和尾部进行插入和删除工作&#x...

看动画学算法之:双向队列dequeue
文章 2022-06-13 来自:开发者社区

看动画学算法之:队列queue

目录简介队列的实现队列的数组实现队列的动态数组实现队列的链表实现队列的时间复杂度简介队列Queue是一个非常常见的数据结构,所谓队列就是先进先出的序列结构。想象一下我们日常的排队买票,只能向队尾插入数据,然后从队头取数据。在大型项目中常用的消息中间件就是一个队列的非常好的实现。队列的实现一个队列需要一个enQueue入队列操作和一个DeQueue操作&#...

看动画学算法之:队列queue
文章 2022-06-13 来自:开发者社区

看动画学算法之:平衡二叉搜索树AVL Tree

目录简介AVL的特性AVL的构建AVL的搜索AVL的插入AVL的删除简介平衡二叉搜索树是一种特殊的二叉搜索树。为什么会有平衡二叉搜索树呢?考虑一下二叉搜索树的特殊情况,如果一个二叉搜索树所有的节点都是右节点,那么这个二叉搜索树将会退化成为链表。从而导致搜索的时间复杂度变为O(n),其中n是二叉搜索树的节点个数。而平衡二叉搜索树正是为了解决这个问题而产生的...

看动画学算法之:平衡二叉搜索树AVL Tree
文章 2022-06-13 来自:开发者社区

看动画学算法之:栈stack

目录简介栈的构成栈的实现使用数组来实现栈使用动态数组来实现栈使用链表来实现简介栈应该是一种非常简单并且非常有用的数据结构了。栈的特点就是先进后出FILO或者后进先出LIFO。实际上很多虚拟机的结构都是栈。因为栈在实现函数调用中非常的有效。今天我们一起来看学习一下栈的结构和用法。栈的构成栈一种有序的线性表,只能在一端进行插入或者删除操作。这一端就叫做top端。定义一个栈,...

看动画学算法之:栈stack
文章 2022-06-13 来自:开发者社区

看动画学算法之:doublyLinkedList

目录简介doublyLinkedList的构建doublyLinkedList的操作头部插入尾部插入插入给定的位置删除指定位置的节点简介今天我们来学习一下复杂一点的LinkedList:doublyLinkedList。和LinkedList相比,doublyLinkedList中的节点除了next指向下一个节点之外,还有一个prev之前的一个节点。所以...

看动画学算法之:doublyLinkedList
文章 2022-06-13 来自:开发者社区

看动画学算法之:linkedList

目录简介linkedList的构建linkedList的操作头部插入尾部插入中间插入删除节点简介linkedList应该是一种非常非常简单的数据结构了。节点一个一个的连接起来,就成了linkedList。今天我们使用动画的方法一起来看看linkedList是怎么插入和删除的。linkedList的构建linkedList是由一个一个的节点构成的。而每个节点只需要存储要保存的数据和下...

看动画学算法之:linkedList
文章 2022-06-13 来自:开发者社区

看动画学算法之:排序-基数排序

目录简介基数排序的例子基数排序的java代码实现基数排序的时间复杂度简介之前的文章我们讲了count排序,但是count排序有个限制,因为count数组是有限的,如果数组中的元素范围过大,使用count排序是不现实的,其时间复杂度会膨胀。而解决大范围的元素排序的办法就是基数排序。基数排序的例子什么是基数排序呢?考...

看动画学算法之:排序-基数排序
文章 2022-06-13 来自:开发者社区

看动画学算法之:排序-count排序

目录简介count排序的例子count排序的java实现count排序的第二种方法count排序的时间复杂度简介今天我们介绍一种不需要作比较就能排序的算法:count排序。count排序是一种空间换时间的算法,我们借助一个外部的count数组来统计各个元素出现的次数,从而最终完成排序。count排序的例子count排序有一定的限制,因为外部...

看动画学算法之:排序-count排序

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

智能引擎技术

AI Online Serving,阿里巴巴集团搜推广算法与工程技术的大本营,大数据深度学习时代的创新主场。

+关注