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