此页面列出了本博客中讨论的所有 Java 算法和实现,以便快速链接。 欢迎提出您想学习的更多算法。
1. 排序算法
快速排序
快速排序是一种分而治之的算法,这意味着原始数组被分成两个数组,每个数组分别排序,然后将排序后的输出合并以产生排序后的数组。
归并排序
当数据结构不支持随机访问时,归并排序很有用,因为它使用纯顺序访问(正向迭代器,而不是随机访问迭代器)。 它也广泛用于外部排序,在这种情况下,与顺序访问相比,随机访问可能非常昂贵。
冒泡排序
冒泡排序是一种简单且缓慢的排序算法,它重复地遍历集合,比较每对相邻的元素并交换它们(如果它们的顺序不正确)。
选择排序
选择排序是一种简单且缓慢的排序算法,它重复地从未排序的部分中选择最小或最大的元素,并将其移动到已排序部分的末尾。
插入排序
插入排序是一种简单且缓慢的排序算法,它重复地从未排序的部分中获取下一个元素,并将其插入到已排序部分的正确位置。
2. 搜索算法
线性搜索
线性搜索是找到列表中给定元素的最简单的搜索算法之一。 此算法按顺序遍历列表中的每个元素,直到找到匹配的元素或到达列表的末尾。
跳跃搜索
跳跃搜索或块搜索通过每次跳过/跳转一定数量的元素来搜索排序数组中的元素。
使用 Soundex 算法进行语音搜索
您是否想知道任何文字编辑器的拼写检查器如何在您拼写错误时向您建议可能的其他单词列表? 这是通过语音搜索完成的。 Soundex 是一种用于按英语发音对姓名进行索引的语音算法。
3. 更多算法
以下是博客中存在的更多 Java 算法。
比较和交换 [CAS] 算法
此算法将内存位置的内容与给定值进行比较,并且仅当它们相同时,才将该内存位置的内容修改为给定新值。 这作为单个原子操作完成。
使用 MD5、SHA、PBKDF2、BCrypt 进行密码加密
密码哈希是通过将某些算法和操作应用于用户提供的密码(通常非常弱且容易猜到)获得的加密字符序列。 让我们探索一些生成这些哈希的算法。
如何在 LinkedList 中检测无限循环
您是否被要求您有一个只能单向遍历的链表,如果该链表包含循环,您将如何检测它? 让我们解决这个问题。
AES(高级加密标准)算法
高级加密标准是一种对称加密算法。 AES 加密由美国用于保护敏感但未分类的材料,因此我们可以说它足够安全。
祝您学习愉快!!
哪个算法用于Java QR码实现程序