![](https://img-blog.csdnimg.cn/20190918140053667.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法与数据结构 ADS(JAVA)
Data Structures And Algorithms In Java
Inn_Vation
这个作者很懒,什么都没留下…
展开
-
排序算法 | 选择排序 In-place Selection sort
选择排序 (Selection sort) 的原理是:首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 public static void selectionSort(int[] elements) { int position; for(int i = 0; i &l...原创 2020-01-12 04:48:47 · 499 阅读 · 0 评论 -
排序算法 | 插入排序 In-place Insertion sort
插入排序 (Insertion sort) 的原理是:将数组中的数据分为两个区间,已排序区间和未排序区间。初始已排序区间只有一个元素,就是数组的第一个元素。插入算法的核心思想是取未排序区间中的元素,在已排序区间中找到合适的插入位置将其插入,并保证已排序区间数据一直有序。重复这个过程,直到未排序区间中元素为空,排序结束。 实现步骤: 从第一个元素开始,该元素可以认为已经被排序。 取出下一个元素...原创 2020-01-12 03:44:32 · 482 阅读 · 0 评论 -
排序算法 | 冒泡排序 Bubble Sort
基本原理 冒泡排序(Bubble Sort)是一种易于理解并且实现简单的排序算法。 基本思想 从第一个元素开始,依次比较两个相邻元素,看两个元素是否满足排序需求。如果不满足需求就交换两个元素的位置。 每次一冒泡也就是步骤1都会使得一个元素在其应该在的位置,也就是最后的元素应该会是最大的。 对所有的元素重复以上步骤(除了最后一个),完成冒泡排序。 这个算法的名字由来是因为越小的元素会经由交换...原创 2020-01-12 02:01:13 · 238 阅读 · 0 评论 -
二叉搜索树 | 判断二叉树是否为AVL树 AVL Tree
判断要求 判断一个二叉树是否为AVL树 这个树是一个二叉搜索树binary search tree。 任意一个节点的两个子树的高度差不大于1。 关于第一点要求,请参考二叉搜索树 | 判断二叉树是否为二叉搜索树(二分查找树)Binary Search Tree ~~public class BinaryTree 也在文章中展示 关于第二点要求:解决思路是利用一个方法 public stati...原创 2020-01-12 01:20:34 · 881 阅读 · 0 评论 -
二分查找 | 二分查找的循环实现以及递归实现(无重复元素)Binary Search
二分查找(Binary Search)应用于查找有序序列中的的特定元素。 基本思想是: 将查找的值与查找区间的中间元素进行对比 - 如果小于中间元素,那么查找区间可以重新确定为在中间元素之前; - 如果大于中间元素,那么查找区间可以重新确定为在中间元素之前; 然后重新在新的区间内进行查找。 终止条件是,区间长度缩小为0 或者 找到所需元素 二分查找的循环实现 // no duplicat...原创 2020-01-12 00:26:23 · 277 阅读 · 0 评论 -
二叉搜索树 | 判断二叉树是否为二叉搜索树(二分查找树)Binary Search Tree
判断要求 判断一个二叉树是否为搜索树Binary Search Tree 对于每一个节点,左子树的所有值小于此节点,右子树的所有值大于此节点。 每一个节点的值都不重复(without duplicate values)。 class BinaryTree { private int key; private BinaryTree left, right; /** * S...原创 2020-01-09 16:15:48 · 473 阅读 · 0 评论