置顶 - 算法导航

2200/02/20 Algorithm

索引各大算法教程,动图演示,一图明了,在本站更新后,会一一放上本站的链接噢

目录

排序

排序指将一组无序的记录序列调整为有序的记录序列。若不需要访问外存,则称为“内部排序”。若参加排序的记录数量很大,无法仅在内存中完成,则称为“外部排序”。

  • 插入排序
    遍历数组,将每个元素逐个插入到已排序的数组中

    插入排序

  • 希尔排序
    将数组按照一定步长拆分为相互间隔的多组数组,对每组数组进行插入排序

    希尔排序

  • 选择排序
    遍历未排序的数组,选择其中的最小值,与已排序数组的后面一位元素交换

    选择排序

  • 堆排序
    将未排序数组变成堆,取出堆顶放入已排序数组

    堆排序

  • 冒泡排序
    每一次遍历数组时将最大的元素推向数组末端直至完成排序

    冒泡排序

  • 鸡尾酒排序
    左右同时遍历数组,将最大元素推向右端,最小元素推向左端

    鸡尾酒排序

  • 快速排序
    选取一个数,把比它小的放在它的左边,比它大的放在它的左边!

    快速排序

  • 归并排序
    分而治之,把数组分成两半,先排左边一半,再排右边半,然后整理并合起来

    归并排序

  • 基数排序
    对所有数据的各个位数使用容器进行归类,从低到高,奇妙的排序方法

    基数排序

最短路径

最短路径是计算某一节点到其他节点的最短距离,单一节点到其他节点的最短路径称为“单源最短路径”,任意节点到其他节点的最短路径称为“多源最短路径”。

  • A* 算法
    通过启发函数引导算法的搜索方向,以求解两点间最短的有效路径

  • Dijkstra 算法
    以起始点为中心向外层层扩展,直到扩展到终点为止

  • Floyd 算法
    利用动态规划的思想寻找给定的加权图中多源点之间最短路径

最小生成树

最小生成树指一个连通图的最小权重生成树,即原图的极小连通子图,且包含原图中的所有结点,并且有保持图连通的最少的边,且这些边的权值的和最小。

  • Prim 算法
    寻找与已生成的局部最小生成树所连通的路径权值最小的点,并将其加入最小生成树中

  • Kruskal 算法
    将权值最小的边一一连接起来,成环则换下一条

字符串匹配

字符串匹配问题就是在一个大的字符串 String 中搜索某个字符串 Pattern 的所出现位置,包括所有出现的位置和最先/最后出现的位置。

  • KMP 算法
    利用匹配失败后的信息,尽量减少模式串与主串的匹配次数

    KMP 算法

  • Sunday 算法
    在匹配过程中,模式串发现不匹配时,算法能跳过尽可能多的字符以进行下一步的匹配

    Sunday 算法

正在加载今日诗词....

Access Statistics

Table of Contents