算法和数据结构
文章平均质量分 83
全栈小熊猫
这个作者很懒,什么都没留下…
展开
-
数据结构复习
秋招加油 文章目录线性表栈和队列模式匹配(Pattern Matching)树图查找排序索引可能的面试问题 线性表 顺序表 DataType data[MaxSize]; int length; 链表 DataType date; Node * next; 操作: 查找: 按位查找、按值查找 插入 insert(int i, DataType x) 删除 Delete(int i) 遍历 PrintList() 求长度 顺序表、链表比较: 顺序表:按位查找快,不需要扫描;需要预先分配一段原创 2021-09-11 12:32:36 · 300 阅读 · 0 评论 -
快速排序及其Java实现(以升序为例)
与合并排序一样,快速排序也是基于分治模式的。下面是对数组A[p…r]排序的分治过程的三个步骤: 分解:数组A[p…r]被划分为两个(可能空)的子数组A[p…q-1]和A[q+1…r],其中A[p…q-1]中的元素均小于A[q],A[q+1…r]中的元素均大于A[q]。 解决:通过递归调用快速排序,对子数组A[p…q-1]和A[q+1…r]进行就地排序 合并:因为两个子数组是就地排序的,将它们合原创 2017-10-27 20:14:59 · 538 阅读 · 0 评论 -
二叉查找树(BST)
0.二叉查找树是按照二叉树的结构来组织的,二叉查找树满足这样的性质: 设x为二叉查找树中的一个结点,left(x)是它的左孩子,right(x)是它的右孩子,那么left(x)<=x<=right(x). 二叉查找树是一种较为简单的数据结构。1.二叉查找树的操作及其Java实现注意:Java没有指针,很多修改都是通过返回值带出来的 ①插入 INSERT:插入指定元素public Node t原创 2017-11-09 21:32:17 · 227 阅读 · 0 评论 -
堆排序算法及其Java实现(以大根堆为例)
(二叉)堆数据结构是一种数组对象,如图所示(下标从0开始),它完全可以被视为一棵完全二叉树。 接下来要出现的几个词语,这里介绍一下: length[A]: 数组A中元素的个数 heap-size[A]: 存放在数组A中堆的元素的个数,是要排序的元素的个数,在进行堆排序时,这个是会变的(减1) A[0]是树的根,A[i]是数组中的第i个元素(从0开始计数) PARENT(i): 第i个元原创 2017-10-22 21:11:59 · 6614 阅读 · 4 评论