![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序算法
BBBgreat
这个作者很懒,什么都没留下…
展开
-
排序算法之基数排序(桶排序)JAVA
排序过程 按从低位到高位的顺序对数组中的每个元素排序 例如: 12 , 3 , 21 , 56 , 84 第一轮排序:21 , 12 , 3 , 84 , 56 第二轮排序:3 , 12 , 21 , 56 , 84 简言之就是,从低位到高位,从小到大 排序的各项指标 平均时间复杂度:O(NM) 最坏时间复杂度:O(NM) 空间复杂度:O(M) 是否稳定:稳定 排序实现 在这里插入代码片 pu...原创 2020-05-06 21:53:27 · 164 阅读 · 0 评论 -
排序算法之计数排序(JAVA)
排序过程 1.找出待排序的数组中最大和最小的元素 2.统计数组中每个值为出现的次数,存入数组位置等于该值处 3.对所有的计数累加sum 4.反向填充目标数组:将计数数组的元素顺序倒出到新数组中,每倒出一个元素,计数数组的计数就减一(sum也减一),sum减到0结束 排序的各项指标 平均时间复杂度:O(N+K) 最坏时间复杂度:O(N+K) 空间复杂度:O(N+K) 是否稳定:稳定 排序实现 在这里...原创 2020-05-06 21:35:28 · 186 阅读 · 0 评论 -
排序算法之堆排序(JAVA)
排序过程 首先将数组元素建成大小为n的大顶堆(每个结点的值大于它的孩子的值),将堆顶元素和数组最后一个元素进行交换,再将除了最后一个数的n-1个元素建立成大顶堆,再将最大元素和数组倒数第二个元素进行交换,重复直至堆大小减为1。 排序的各项指标 平均时间复杂度:O(NlogN) 最坏时间复杂度:O(NlogN) 空间复杂度:O(1) 是否稳定:不稳定 排序实现 在这里插入代码片 public sta...原创 2020-05-06 19:36:55 · 188 阅读 · 0 评论 -
排序算法之快速排序(JAVA)
排序过程 在数组中随机选一个数(默认数组首个元素),数组中小于等于此数的放在左边,大于此数的放在右边。排好该元素后,再对该元素两边递归调用快速排序,重复这个过程。 排序的各项指标 平均时间复杂度:O(NlogN) 最坏时间复杂度:O(N^2) 空间复杂度:O(logN) 是否稳定:不稳定 排序实现 在这里插入代码片 public static void quickSort(int[] arr) {...原创 2020-05-06 17:09:04 · 151 阅读 · 0 评论 -
排序算法之归并排序(JAVA)
排序过程 首先对数组进行拆分,每次都一分为二。拆分结束后,让数组中的每一个数单独成为长度为1的区间。最后,再两两一组有序合并(该过程完成排序),得到长度为2的有序区间,依次进行,直到合成整个区间。 ...原创 2020-05-06 15:27:05 · 191 阅读 · 0 评论 -
排序算法之选择排序(JAVA)
排序过程 首先从0—N-1区间上选择一个最小值,将其与0位置上的元素进行交换,然后再在1—N-1范围上选取最小值与1位置上的元素进行交换。重复过程直到剩下最后一个元素,数组即为有序。 排序的各项指标 ...原创 2020-05-06 14:37:34 · 127 阅读 · 0 评论 -
排序算法之插入排序(JAVA)
排序过程 首先位置1上的数和位置0上的数进行比较,如果位置1上的数大于位置0上的数,将位置0上的数向后移一位,将1插入到0位置,否则不作任何处理。接下来每次插入的位置k依次和之前的数进行比较,找到属于自己的位置。 排序的各项指标 平均时间复杂度:O(N^2) 最坏时间复杂度:O(N^2) 空间复杂度:O(1) 是否稳定:稳定 排序实现 在这里插入代码片 public static void ins...原创 2020-05-06 14:25:31 · 142 阅读 · 0 评论 -
排序算法之冒泡排序(JAVA)
排序过程 从小到大进行排序,首先交换的区间为0—N-1,将前一个数和后一个数进行比较,前面大于后面,交换两个数,否则不交换,该轮将最大的数放到了最右端。第二轮比较区间为0—N-2,前面大于后面,交换两个数否则不交换。依次进行。最后范围只剩一个数时数组即为有序。 排序的各项指标 平均时间复杂度:O(N^2) 最坏时间复杂度:O(N^2) 空间复杂度:O(1) 是否稳定:稳定 排序实现 在这里插入代码...原创 2020-05-06 14:13:15 · 133 阅读 · 0 评论