240 发简信
  • 字符串匹配算法

    1. BF算法 英文全称:Brute Force,也即暴力匹配算法。主要思路是:遍历主串,逐个子串与模式串进行比较。代码如下(kotlin编写)...

  • 堆排序

    1. 什么是堆 堆的概念主要有 2 点: 堆是一个完全二叉树; 堆中每个节点的值都大于等于(或小于等于)其左右子树节点的值; 如果根节点是最大值...

  • 二叉查找树查找、增加、删除

    二叉查找树要求,在树中的任意一个节点,其左子树中的每个节点的值,都要小于这个节点的值,而右子树节点的值都大于这个节点的值。 下面是二叉查找树的常...

  • 二叉树的几种遍历

    1. 前序遍历 2. 中序遍历 3. 后序遍历 4. 层序遍历

  • 跳表(skip list)

    跳表是通过链表来存储有序数组,查找、插入、删除数据非常高效。代码如下(kotlin编写): 查找时间复杂度:O(logn)插入时间复杂度:O(l...

  • 二分查找的几种变体

    在一个有序数组中查找某个元素,采用二分查找是非常高效的,其查找只需要 O(logn) 的时间复杂度就可以了。如果数组中允许出现重复的元素,那么二...

    0.1 22 0 1
  • 桶排序、计数排序、基数排序算法

    这3种排序通常都算作是一类排序算法,他们不像选择、冒泡、归并、快排之类的是基于比较来排序的。 1. 桶排序 以一个例子来说明:有一个数组为 [3...

  • 归并、快排算法

    1. 归并算法 将一个待排序数组从中间分成 2 部分,分别将这 2 部分排好序,然后再将之合并。这是一个递归的过程,左右两部分再用同样的方式排序...