![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
大秦隐士
这个作者很懒,什么都没留下…
展开
-
实现最大堆和堆排序
最大堆:最大堆:堆中某个节点的值总是不大于其父节点的值,可以使用数组实现:按层,从上到下,从左到有,为节点序号i往堆中增加元素的操作:往数组末尾增加,如果比父节点大,则交换,同理,一直到根节点;该操作称为siftUp去除最大堆根元素的操作:将根元素去除,将最后一个元素放在根元素的位置,比较根元素左右子节点,如果左右子节点最大值大于根元素,则和最大的子节点交换所以依次取出最大堆的根元素,对应的就是降序排列完整代码如下:/** * 最大堆:堆中某个节点的值总是不大于其父节点的值 *..原创 2020-05-30 11:12:18 · 278 阅读 · 0 评论 -
排序算法:快速排序,归并排序
快速排序和归并排序都是nlogn时间复杂度的排序算法1、快速排序思路: 数组取标杆pivot,将比pivot小的元素放在pivot左边,大于pivot的元素放在pivot右边 依次对左边和右边的子数组快排 最终达到整个数组有序public class QuickSort { @Test public void test() { int[] nums = {2,1,5,3,4}; sort(nums); System.out.println(Ar...原创 2020-05-29 16:34:26 · 155 阅读 · 0 评论 -
排序算法:冒泡排序,选择排序,插入排序
冒泡排序,选择排序,插入排序都是n平方的时间复杂度下面使用Java代码实现这三种排序1、冒泡排序思路:嵌套循环,每次查看相邻的元素如果逆序,则交换public class BubbleSort { @Test public void test() { int[] nums = {2,1,5,3,4}; sort(nums); System.out.println(Arrays.toString(nums)); } /** * 冒泡排序,升序 * 嵌套循..原创 2020-05-29 16:21:20 · 204 阅读 · 0 评论