排序算法
=.=
金华市的小梁
这个作者很懒,什么都没留下…
展开
-
Java堆排序
复习排序三:堆排序对于堆排序的简单介绍堆排序可以分为两个阶段。在堆的构造阶段中,我们将原始数组重新组织为一个有序堆。在排序阶段,我们把堆顶元素(即数组0下标)与未排序数组的最后一个元素交换,然后再调用 sink 方法把未排序数组重新堆有序化。1.关于堆一些定义1)当一棵二叉树的每个节点都大于等于它的两个子节点时,它被称为堆有序2)二叉堆是一组能够用堆有序的完全二叉树排序的元素,并在数组中按照层级存储(算法第四版中的代码是不使用数组第一个元素的,但我的代码中是使用了的)。2.由上至下堆的有序化的实原创 2021-04-04 22:40:30 · 52 阅读 · 0 评论 -
Java快速排序
复习排序二:快速排序快速排序是对冒泡排序的一种改进,基本思想是,选取一个基准数,将数组分成两部分,一部分比基准数小,一部分比基准数大,然后按照此方法再对这两部分的进行分割,整个过程可以递归进行,最后将整个数列排序成有序的。 public static void quickSort(int[] nums,int left,int right) { if(right <= left) return; int temp; int low = left;原创 2021-04-01 23:45:16 · 46 阅读 · 0 评论 -
Java冒泡排序
复习排序一:冒泡排序冒泡排序是从序列从前向后依次比较相邻的数,若发现逆序则交换顺序,这样可以将最大或者最小的数逐渐移向最后,像水泡一样慢慢上升。每一趟排序可以确定一个数的位置,即 n 个数只需要排序 n - 1 次,而假设 i 为排序的次数,每一趟排序有 n - i 个待排序数,则只需要对比 n - i - 1 次,两次for循环就能搞定public void bubbleSort(int[] nums){ int temp;//用于交换的中间变量 for(int i = 0;i < nums原创 2021-04-01 23:04:16 · 66 阅读 · 0 评论