![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序
freezeriver
再努力一点点会更好
展开
-
冒泡排序
冒泡排序原理很简单,就是每次比较相邻位置的大小,以升序为例,如果前一个大于后一个,则交换 具体代码实现如下: public class MySort { /** * 冒泡排序未优化版 * * @param array */ public static void bubbleSort1(int[] array){ in...原创 2018-08-20 23:04:46 · 86 阅读 · 0 评论 -
桶排序
桶排序以我个人的理解就是先找出数组的最大值,譬如最大值为m,然后创建一个数组大小为m的数组, 数组的每一位都可以看成是一个桶,然后遍历需要排序的数组,向桶中填数,之后把桶从小到大向外取数即可得到排序好的数组。 /** * 桶排序 * 桶排序的关键在于找出数组的最大值,而后统计这些位置数字出现的个数,再从桶中依次取出即可 * * @param array */ public sta...原创 2018-08-20 23:08:33 · 89 阅读 · 0 评论 -
简单插入排序
插入排序算法流程: (1)先取出数组第一个元素 (2)取出数组第二个元素,与第一个元素比较 …………… (3)取出数组第n个元素,在前n-1个已排序好的元素中从后往前找到能依旧保持有序的位置插入 代码如下: /** * 简单插入排序 * 插入排序流程:每次保证前n位有序,然后把n+1位插入到前n位有序数组的指定位置 * @param array ...原创 2018-08-20 23:09:49 · 2246 阅读 · 0 评论 -
基数排序
基数排序是建立在桶排序上的一种算法 基本的算法思路上是统计数字的每一位进行桶排序,全部位都执行一遍后即可得到有序数组 /** * 基数排序 * 每一层统计数字当前层中0~9出现的个数,利用桶排序对数组进行排序,所有位排完序后便可得到有序数组 * @param array */ public static void radixSort(int[] array){ ...原创 2018-08-20 23:11:13 · 100 阅读 · 0 评论 -
简单选择排序
简单选择排序思路在于每轮选取最x~n-1的最小值,然后将其放到指定位置 具体代码实现如下: /** * 简单选择排序 * 第一轮选取下标0~n-1中最小的数放到位置0上,第二轮选取下标1~n-1中最小的数放到位置1上,往后以此类推 * @param array */ public static void selectionSort(int[] a...原创 2018-08-21 22:37:12 · 121 阅读 · 0 评论 -
希尔排序
希尔排序是插入排序的优化版本,特色在于隔位分组进行插入排序,网上有很多讲原理的博客,这里我就不细写了。 希尔排序的思想优化点在于如果一个数组越接近于有序,那么插入排序的效率越高。 把整个代码流程实现拆开可以变成3部分: (1)取步长 (2)按步长分组 (3)组内插入排序 具体代码实现: /** * 希尔排序 * @param array */ public s...原创 2018-09-24 10:27:31 · 128 阅读 · 0 评论