排序算法

排序算法是一类将一组数据按照特定顺序排列的算法,在计算机科学中具有重要地位。

冒泡排序

重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来

查看详情

选择排序

每次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置

查看详情

插入排序

通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入

查看详情

快速排序

采用分治法策略,通过一趟排序将要排序的数据分割成独立的两部分

查看详情

归并排序

采用分治法策略,将已有序的子序列合并,得到完全有序的序列

查看详情

堆排序

利用堆这种数据结构所设计的一种排序算法,是一种选择排序

查看详情

搜索算法

搜索算法用于在数据结构中查找特定元素或满足条件的元素,是计算机程序中最基本的操作之一。

二分查找

在有序数组中查找特定元素的算法,每次比较后将查找范围缩小一半

查看详情

线性查找

从列表的第一个元素开始逐个检查,直到找到目标值或检查完所有元素

查看详情

深度优先搜索

沿着图的深度遍历图的节点,尽可能深的搜索图的分支

查看详情

广度优先搜索

从根节点开始,沿着树的宽度遍历树的节点

查看详情

图算法

图算法处理图结构中的问题,如最短路径、遍历等,在网络分析、社交网络等领域广泛应用。

最短路径算法

Dijkstra算法用于计算有权图中单源最短路径

查看详情

最小生成树

Prim算法用于在加权连通图中搜索最小生成树

查看详情

拓扑排序

对有向无环图进行排序,使得对于任何有向边uv,顶点u在排序中都出现在v之前

查看详情

动态规划

动态规划是通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。

背包问题

0-1背包问题是经典的动态规划问题

查看详情

最长公共子序列

寻找两个序列的最长公共子序列

查看详情

斐波那契数列

使用动态规划优化的斐波那契数列计算

查看详情