# Java 算法和实现

> 原文： [https://howtodoinjava.com/java-algorithms-implementations/](https://howtodoinjava.com/java-algorithms-implementations/)

此页面列出了本博客中讨论的所有 Java 算法和实现，以提供快速链接。 随意建议您可能想学习的更多算法。

## Java 排序算法

1.  #### [快速排序](//howtodoinjava.com/algorithm/quicksort-java-example/)

    快速排序是一种分而治之的算法，这意味着将原始数组分为两个数组，分别对每个数组进行排序，然后将排序后的输出合并以生成排序后的数组。

2.  #### [归并排序](//howtodoinjava.com/algorithm/merge-sort-java-example/)

    当数据结构不支持随机访问时使用归并排序，因为它可以与纯顺序访问（正向迭代器，而不是随机访问迭代器）一起使用。 它也广泛用于外部排序，与顺序访问相比，随机访问的费用非常高。

3.  #### [冒泡排序](//howtodoinjava.com/algorithm/bubble-sort-java-example/)

    冒泡排序是一种简单而缓慢的排序算法，它会反复遍历集合，比较每对相邻元素，如果顺序错误则交换它们。

4.  #### [选择排序](//howtodoinjava.com/algorithm/selection-sort-java-example/)

    选择排序是一种简单而缓慢的排序算法，可从未排序部分中反复选择最低或最高元素，然后将其移至已排序部分的末尾。

5.  #### [插入排序](//howtodoinjava.com/2015/10/27/insertion-sort-java-example/)

    插入排序是一种简单而缓慢的排序算法，它反复从未排序部分中取出下一个元素，并将其插入到正确位置的已排序部分中。

## 更多 Java 算法

以下是博客中提供的更多 Java 算法。

1.  #### [使用 Soundex 算法](//howtodoinjava.com/for-fun-only/implement-phonetic-search-using-soundex-algorithm/)进行语音搜索

    您是否曾经想过，在任何单词编辑器中，拼写检查器会如何在您遇到任何拼写错误时建议您列出其他可能的单词？ 这是通过语音搜索完成的。 Soundex 是一种语音算法，用于通过声音索引名称（英语发音）。

2.  #### [比较和交换（CAS）算法](//howtodoinjava.com/java/multi-threading/compare-and-swap-cas-algorithm/)

    该算法将存储位置的内容与给定值进行比较，并且只有它们相同时，才会将该存储位置的内容修改为给定的新值。 这是作为单个原子操作完成的。

3.  #### [使用 MD5，SHA，PBKDF2，BCrypt 等进行密码加密。](//howtodoinjava.com/security/how-to-generate-secure-password-hash-md5-sha-pbkdf2-bcrypt-examples/)

    密码哈希是在对用户提供的密码应用某些算法和操作后获得的加密的字符序列，这些密码和密码通常很弱并且很容易猜到。 让我们探讨几种生成这些哈希的算法。

4.  #### [如何检测链表中的无限循环](//howtodoinjava.com/puzzles/how-to-detect-infinite-loop-in-linkedlist-in-java-with-example/)

    询问您是否有一个只能在一个方向上移动的链表，并且如果该链表中有一个循环，您将如何检测到它？ 让我们解决问题。

5.  #### [AES（高级加密标准）算法示例](//howtodoinjava.com/security/java-aes-encryption-example/)

    高级加密标准，它是一种对称加密算法。 美国使用 AES 加密来保护敏感但未分类的资料，因此可以说它足够安全。

**祝您学习愉快！**