当前位置:首页 > java > 正文

java100个常用算法

  • java
  • 2024-05-03 12:36:47
  • 3757

冒泡排序:一种简单且直观的排序算法,通过不断比较相邻元素并交换位置来排序。
选择排序:找到未排序部分中的最小元素并将其移到前面。
插入排序:将未排序元素插入到已排序部分的正确位置。
快速排序:一种分而治之算法,通过选择枢纽元素将数组划分为两个子数组。
归并排序:另一种分而治之算法,通过将数组分成较小的子数组并递归排序这些子数组。
搜索算法
顺序搜索:从数组的开头开始,逐个元素进行比较。
二分搜索:在有序数组中使用分而治之的方法查找元素。
插值搜索:一种基于元素的相对位置的改进版二分搜索。
哈希表:一种数据结构,用于基于键快速查找元素。
数据结构
链表:一种线性数据结构,其中每个元素都包含一个数据值和指向下一个元素的指针。
栈:一种后进先出(LIFO)数据结构。
队列:一种先进先出(FIFO)数据结构。
树:一种层次结构的数据结构,其中每个节点最多拥有一个父节点和多个子节点。
图:一种由节点(顶点)和连接节点的边组成的数据结构。
数学算法
欧几里得算法:用于求两个整数的最大公约数。
埃拉托斯特尼筛选法:用于查找所有小于或等于给定数字的质数。
快速傅里叶变换 (FFT):一种高效计算两个多项式积的算法。
离散余弦变换 (DCT):一种用于图像和音频压缩的算法。
最小二乘法:一种用于拟合数据点的直线或曲线的算法。
字符串算法
Knuth-Morris-Pratt (KMP) 算法:一种高效的字符串匹配算法。
Boyer-Moore 算法:另一种高效的字符串匹配算法,在某些情况下比 KMP 更快。
Rabin-Karp 算法:一种基于散列的字符串匹配算法。
Trie:一种用于存储字符串的树形数据结构,可快速进行前缀匹配。
图形算法
Dijkstra 算法:用于查找图中从源节点到所有其他节点的最短路径。
Kruskal 算法:用于查找图中的最小生成树。
Prim 算法:另一种查找图中最小生成树的算法。
Floyd-Warshall 算法:用于查找图中所有成对节点之间的最短路径。
其他算法
动态规划:一种用于解决优化问题的算法,通过存储子问题的解决方案来避免重复计算。
贪心算法:一种基于局部最优解做出决策的算法。
回溯算法:一种通过系统地遍历所有可能的解决方案来解决问题的算法。
分支限界算法:一种通过限制搜索空间来提高回溯算法效率的算法。
遗传算法:一种基于自然选择原理的优化算法。