![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序
枳洛淮南✘
没有人生来就是弱者
展开
-
1356. 根据数字二进制下 1 的数目排序
1356. 根据数字二进制下 1 的数目排序链接解法一解法二链接1356. 根据数字二进制下 1 的数目排序解法一数组重赋值//数组重赋值,由于题目限定arr[i] 中的数不超过 10000 public int[] sortByBits(int[] arr) { int[] ret = new int[arr.length]; for (int i = 0; i < arr.length; i++) {原创 2021-05-18 14:23:25 · 72 阅读 · 0 评论 -
排序(Java)
排序概念排序常见排序算法插入排序 & 希尔排序选择排序堆排序冒泡排序快速排序归并排序总结概念排序常见排序算法插入排序1.直接插入排序2.希尔排序选择排序1.堆排序2.选择排序交换排序1.冒泡排序2.快速排序归并排序1.归并排序插入排序 & 希尔排序插入排序及希尔排序实现及其相关补充(折半插入排序,在有序区间选择数据应该插入的位置时,因为区间的有序性,可以利用折半查找的思想。):public static void bsInsertSort(int[]原创 2021-03-31 12:56:28 · 372 阅读 · 6 评论 -
归并排序(Java)
归并排序原理原理归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide andConquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。import java.util.Arrays;import java.util.Random;/** * @author 枳洛淮南 * @version 1.0 * @Description 归原创 2021-03-31 12:54:50 · 116 阅读 · 1 评论 -
快速排序
快速排序1 原理1 原理从待排序区间选择一个数,作为基准值(pivot);Partition: 遍历整个待排序区间,将比基准值小的(可以包含相等的)放到基准值的左边,将比基准值大的(可以包含相等的)放到基准值的右边;采用分治思想,对左右两个小区间按照同样的方式处理,直到小区间的长度 == 1,代表已经有序,或者小区间的长度 == 0,代表没有数据。import java.util.Arrays;import java.util.Random;/** * @author 枳洛淮南 *原创 2021-03-31 12:52:44 · 119 阅读 · 1 评论 -
冒泡排序(Java)
冒泡排序原理原理在无序区间,通过相邻数的比较,将最大的数冒泡到无序区间的最后,持续这个过程,直到数组整体有序import java.util.Arrays;import java.util.Random;//冒泡排序//具备稳定性public class bubbleSort{ public static long[] func() //无序数组 { Random random = new Random(20210320); lo原创 2021-03-31 12:49:29 · 109 阅读 · 0 评论 -
堆排序
1 原理基本原理也是选择排序,只是不在使用遍历的方式查找无序区间的最大的数,而是通过堆来选择无序区间的最大的数。注意: 排升序要建大堆;排降序要建小堆。import java.util.Arrays;import java.util.Random;//堆排序public class heapSort{ public static long[] func() //无序数组 { Random random = new Random(20210320)原创 2021-03-31 12:46:51 · 85 阅读 · 0 评论 -
插入排序和希尔排序(分组插排)
插入排序和希尔排序(分组插排)插入排序:1 直接插入排序-原理整个区间被分为有序区间无序区间每次选择无序区间的第一个元素,在有序区间内选择合适的位置插入代码实现:import java.util.Arrays;import java.util.Random;//插入排序//具备稳定性public class insertSort{ public static void insertSort1(long[] array) { //数据一共 arr原创 2021-03-19 01:16:17 · 222 阅读 · 3 评论 -
选择排序及选择排序变形
选择排序及选择排序变形直接选择排序-原理每一次从无序区间选出最大(或最小)的一个元素,存放在无序区间的最后(或最前),直到全部待排序的数据元素排完 。双向选择排序每一次从无序区间选出最小 + 最大的元素,存放在无序区间的最前和最后,直到全部待排序的数据元素排完 。代码及测试:import java.util.Arrays;import java.util.Random;//选择排序//不具备稳定性public class selectSort{ public static原创 2021-03-19 00:39:35 · 241 阅读 · 3 评论