排序算法之堆排序
摘要:一、原理 堆排序是采用数据结构堆进行排序的算法。堆是一种近似完全二叉树的结构,并同时满足堆的性质:子节点的键值或索引总是小于(或大于)它的父节点。 堆中定义以下几种操作: 1) 最大堆调整(Max Heapify):将堆的末端子节点作调整,使得子节点永远小于父节点 。 2) 创建最大
阅读全文
posted @
2019-02-26 23:53
IT-飞鹰
阅读(151)
推荐(0)
排序算法之希尔排序
摘要:一、原理 希尔排序是直接插入排序的一种更高效的改进版本。它把记录按下标的一定增量进行分组,然后对每组使用直接插入排序;随着增量逐渐减少每组中包含的元素越来越多,也越来越有序,当增量减到为1时,整个序列就是一组,排序结束。 二、代码实现 java package com.jdk8.SortTest
阅读全文
posted @
2019-02-26 23:48
IT-飞鹰
阅读(151)
推荐(0)
排序算法之快速排序
摘要:一、原理 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据小,然后在按此方法对这两部分数据分别进行排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列的过程。 二、代码实现 java package com.jdk8.SortTest; public
阅读全文
posted @
2019-02-18 23:01
IT-飞鹰
阅读(159)
推荐(0)
排序算法之插入排序
摘要:一、原理 每一步将一个待排序的记录,按其关键码值得大小插入前面已经排序的文件中适当的位置上,直到全部插入完为止。 二、代码实现 java package com.jdk8.SortTest; public class InsertSort { public static void doInsertS
阅读全文
posted @
2019-02-02 22:52
IT-飞鹰
阅读(148)
推荐(0)
排序算法之选择排序
摘要:一、原理 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)的元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。 二、代码实现 运行结果如下: 三、复杂度分析 3.1、时间复杂度分析 选择排序的交换操作
阅读全文
posted @
2019-02-02 22:47
IT-飞鹰
阅读(151)
推荐(0)
排序算法之冒泡排序
摘要:一、原理 1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2、对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点上,最后的元素即是最大的数。 3、针对所有元素重复以上的步骤,除了最后一个。 4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 二、
阅读全文
posted @
2019-02-02 22:40
IT-飞鹰
阅读(183)
推荐(0)