![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
--------排序
ke_yi_
这个作者很懒,什么都没留下…
展开
-
基数排序
基数排序思想:先将序列按照个位装入十个组,然后从0到9将各组内数拿出来,按照十位装入是个组,最后以同样的方式按照百位装入,完成操作之后就已经排好序了。 排序图解: 排序代码: 代码设计: 首先将判断所有数字都是多少位,必须将高位为空补零,存为字符串,或者直接通过整数位数求余取整获得数据。 然后使用循环从个位到最高位遍历所有数,分组。 设置分组,每一个分组必须是一个动态数组。 每...原创 2019-05-01 22:16:55 · 170 阅读 · 0 评论 -
排序算法比较
排序算法的时间效率: 平均情况 最好情况 最坏情况 基数排序 归并排序 快速排序 希尔排序 插入排序 选择排序 O(n) O(n*logn) O(n*logn) O(n^1.5) O(n^2) O(n^2) O(n) O(n*log...原创 2019-05-03 10:24:32 · 201 阅读 · 0 评论 -
希尔排序
希尔排序思想:插入排序的一种变体。由于插入排序对于特别乱的序列排序会很糟。而它就是先将序列变成接近有序的序列。 排序步骤: 举例:10、16、11、4、15、3、9、6、1、17、8、12、7 (1)分组:将上面序列分为6组,按照每一组按照相隔多少取一个数,比如第一组取0号、6号、12号。如下: (2)分组排序:对每一组进行插入排序,得到数组的状态为7、1、4、8、3、9、16、11、...原创 2019-04-28 14:20:10 · 155 阅读 · 0 评论 -
选择排序
选择排序思想:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。基于此思想的算法主要有简单选择排序、树型选择排序和堆排序。 选择排序图解: 选择排序代码(java): package sort; public class SelectSort { public static<T extends Comparable<? ...原创 2019-04-23 21:03:42 · 141 阅读 · 0 评论 -
插入排序
插入排序思想:插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据; 插入排序图解: 插入排序代码: //迭代版本 public class Interation_InsertSort { public static<T extends Comparable<? super T>> void I_insertion...原创 2019-04-25 10:57:40 · 210 阅读 · 0 评论 -
归并排序
归并排序思想:将一个序列分成两半然后对两半分别排序,再将他们归并为一个有序序列。 归并排序图解: 归并排序的代码:(迭代版本代码由于写的急,没来的急优化,所以可读性不是很好) //递归版本归并排序 public class Recursion_MergeSort { public static <T extends Comparable<? super T>> ...原创 2019-04-30 21:56:28 · 329 阅读 · 0 评论 -
快速排序
与前面归并排序不同的另一种分治策略----快速排序 与归并排序不同的是:快排不要求分成相等的两半、归并主要是合并,快排主要是划分、归并有一个辅助数组,快排不要。 java类库中的快排:java.until中的Arrays使用快排对基本类型的数组按升序排序。方法: public static void sort(type[] a); public static void sort(type[]...原创 2019-05-01 15:46:43 · 369 阅读 · 0 评论