java十大算法

算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有...
java十大算法
算法一:快速排序算法
快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。

快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)。

算法步骤:

1 从数列中挑出一个元素,称为 "基准"(pivot),

2 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。

3 递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。

递归的最底部情形,是数列的大小是零或一,也就是永远都已经被排序好了。虽然一直递归下去,但是这个算法总会退出,因为在每次的迭代(iteration)中,它至少会把一个元素摆到它最后的位置去。

算法二:堆排序算法
堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。

堆排序的平均时间复杂度为Ο(nlogn) 。

算法步骤:

创建一个堆H[0..n-1]

把堆首(最大值)和堆尾互换

3. 把堆的尺寸缩小1,并调用shift_down(0),目的是把新的数组顶端数据调整到相应位置

4. 重复步骤2,直到堆的尺寸为1

算法三:归并排序
归并排序(Merge sort,台湾译作:合并排序)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。

算法步骤:

1. 申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列

2. 设定两个指针,最初位置分别为两个已经排序序列的起始位置

3. 比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置

4. 重复步骤3直到某一指针达到序列尾

5. 将另一序列剩下的所有元素2020-09-30
mengvlog 阅读 8 次 更新于 2025-06-20 00:32:56 我来答关注问题0
  •  翡希信息咨询 java有哪些算法

    一、排序算法 冒泡排序:通过不断比较相邻元素并交换位置来将最大值或最小值移动到序列的一端。 选择排序:每次从未排序部分选择最小的元素放到已排序部分的末尾。 插入排序:将未排序的元素逐个插入到已排序序列的适当位置。 快速排序:基于分治思想,选择一个基准元素,通过递归将小于基准的元素放在左边...

  • 算法二:堆排序算法 堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。堆排序的平均时间复杂度为Ο(nlogn) 。算法步骤:创建一个堆H[0..n-1]把堆首(最大值)和堆尾...

  •  翡希信息咨询 java算法

    Java中的算法主要包括排序算法、搜索算法、图算法和树算法等。排序算法:用于将一组数据按照特定的顺序进行排列。冒泡排序:简单易实现,但效率较低,适用于数据量较小的情况。选择排序:也是一种较为简单的排序算法,但同样效率不高。插入排序:对于部分有序的数据集效率较高。快速排序:效率高,适用于...

  •  猪八戒网 JavaMD5和SHA256等常用加密算法

    加密算法中SHA1、SHA-224、SHA-256、SHA-384,和SHA-512,其中SHA-224、SHA-256、SHA-384,和SHA-512我们可以统称为SHA2加密算法 SHA加密算法的安全性要比MD5更高,而SHA2加密算法比SHA1的要高。其中SHA后面的数字表示的是加密后的字符串长度,SHA1默认会产生一个160位的信息摘要。MD5MD5信息摘要...

  •  翡希信息咨询 java中递归算法是什么怎么算的?

    递归算法在Java中是一种自我调用的算法,它在函数或方法的实现中直接或间接地调用自身,以解决规模较小或更简单的问题,然后基于这些解决方案得出更大或更复杂问题的解。以下是递归算法在Java中的计算方式:定义基础情况:这是递归停止的条件,也就是问题的最简单形式。递归算法必须有一个或多个基础情况,...

檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部