240 发简信
IP属地:广东
  • LeetCode动画 | 699.掉落的方块

    今天分享一个LeetCode题,题号是699,标题是掉落的方块,题目标签是线段树,题目难度是困难。 这篇文章写着写着,篇幅就变得有点长了,但是这对你很有帮助,因为我在写Jav...

  • 布尔值数组的状态压缩

    今天做一个LeetCode题发现一个小技巧,特来与你们分享一下。 做的LeetCode题是关于二维矩阵的图论建模,像下面这样的: 二维矩阵可以不产生一个图结构,直接在二维矩阵...

  • 程序员想知道代码是怎样跑起来的

    程序员使用Java语言实现累加求和的方法,将文件命名为Sample.java。 程序员不想直接点击运行,使用javac编译了Sample.java文件,可以看到Sample....

  • 动画 | 什么是桶排序?

    学过上一篇文章的计数排序之后,特别是归约化分治处理的计数排序(适用于较离散的非负整数序列)。计数排序的局限比较多,在排序之前需要解决负数和小数的问题,而桶排序不需要考虑这些。...

  • 120
    动画 | 什么是计数排序?

    我们知道快速排序的时间复杂度期望值是O(nlogn),其中O(logn)是利用了二分法进行远距离比较和交换元素的位置。如果不去做比较交换计算,有没有可能有一种算法,它的时间复...

  • 动画 | 什么是归并排序?

    归并排序的归并这两个字和递归没有关系,归并是将两个有序的数组归并成一个更大的有序数组,但整个排序算法是有可能跟递归有关系的。因为归并排序算法可以按照递归方式去解决,也可以按照...

  • 动画 | 什么是堆排序?

    回顾一下我们学过的选择排序,在无序区找到一个最小(大)的元素需要比较n-1次,找到第二小的元素需要比较n-2次,直到最后比较1次。而堆排序因为二叉堆的性质,堆顶就是最大的元素...

  • 动画 | 什么是二叉堆?

    二叉堆的解释 (动态选择优先级最高的任务执行) 堆,又称为优先队列。虽然名为优先队列,但堆并不是队列。堆和队列是两种不同的数据结构,堆是树态的,队列是线性的。在队列中,我们可...

  • 动画 | 什么是二分搜索树(二叉查找树)?

    二分搜索树属性 二分搜索树的又名比较多,有的叫二叉排序树,也有的叫二叉查找树,或者有序二叉查找树。是指一棵空树或者具有下列性质的二叉树: 1.若任意节点的左子树不空,则左子树...

  • 动画 | 什么是选择排序?

    简单选择排序属性 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再...

  • 动画 | 什么是希尔排序?

    希尔排序属性 上篇写的直接插入排序算法时间复杂度是O(n2),如果要令此排序算法的时间复杂度要低于O(n2),必须是“远距离的元素交换”使得这组元素能提高有序的程度,然后进行...

  • 动画 | 什么是插入排序?

    插入排序 插入排序是比较简单也比较直接的一种排序算法。它是从一堆数据中取出一个数据并将它插入到已排序的数据中合适的位置。 比如按身高排队,有一个人指挥排队从第二个人开始,按身...

  • 动画 | 什么是鸡尾酒排序?

    鸡尾酒排序其实就是冒泡排序的变形,它的时间复杂度和冒泡排序一样,都是O(n^2),比快速排序要慢不少。 鸡尾酒排序的思想有点像摆钟一样,从左到右,又从右到左。而冒泡排序只是单...

个人介绍
微信公众号:算法无遗策