排序算法
淡定-ing
做人要淡定
展开
-
排序算法之插入排序
排序分为内部排序和外部排序。内部排序指的是能够在主内存中完成的算法排序;外部排序指的是必须在磁盘或者磁带上完成的排序。下面介绍内部排序系列。 插入排序 插入排序的基本思想是每一步将一个待排序的数据根据关键的值得比较,将这个数据插入到有序的数据列中。 插入排序的特点: 待插入的序列是一个有序的数据列; 适用于少量数据的排序; 时间复杂度为O(n^2); 插入排序的java代码实现: ...原创 2018-08-19 11:06:05 · 148 阅读 · 0 评论 -
排序算法之希尔排序
希尔排序 希尔排序是插入排序的一种,又称缩小增量排序,是直接插入排序算法的一种更高效的版本,是一种非稳定的排序算法。 希尔排序的基本思想是将数据按照下标的一定增量进行分组,对每组使用直接插入排序算法进行排序。随着增量逐渐减少,每组包含的关键词越来越多,当增量变为1时,整个文件被分为一组,算法终止。 算法的java代码实现: /** * 希尔排序 */ public class Sh...原创 2018-08-19 11:52:05 · 123 阅读 · 0 评论 -
排序算法之堆排序
基于堆的数据结构,形成了一种堆的排序算法,叫做堆排序。堆排序总的运行时间是。 这个算法的主要问题在于使用了一个附加的数组,存储需求增加了一倍,因此这里采用一种回避的算法:在每次deletemin后堆缩小1,位于堆中的最后的单元可以用来存放刚刚删除的元素。 算法的主要逻辑思路: 1、创建堆数据结构; 2、删除位于根最小值(或者最大值); 3、重新构造堆的结构; 4、重复2和3的操作,直到...原创 2018-09-04 23:22:21 · 117 阅读 · 0 评论 -
数据结构与算法之快速排序
快速排序顾名思义,在大部分情况下都能快速的将数据进行排序。百度百科快速排序的定义:通过一趟排序将要排序的数据分成独立的两部分,其中一部分的数据比另一部分的所有数据都要小,然后再按照这个方法对这两部分进行快速排序,排序以递归进行,从而达到将整个数据变成有序序列。快速排序的平均运行时间是O(N log N)。 从快速快速的定义可知,排序是将数据分成两部分,因此选择切分数据的中数非常重要,否则两部分的...原创 2018-09-16 12:05:28 · 133 阅读 · 0 评论