随笔分类 -  八大排序算法Java实现

摘要:本篇内容: 归并排序 归并排序 算法思想: 将两个或两个以上的有序表合并成一个新的有序表, 即把待排序序列分成若干个子序列,每个子序列是有序的,然后在把有序子序列合并为整体有序序列. 此算法分为两步: (1)把数组等长切分; (2)把切分后的数组进行排序,然后合并; 通过切分方法的递归调用,可以将数 阅读全文
posted @ 2019-08-12 16:44 CherishTheYouth 阅读(1585) 评论(0) 推荐(0) 编辑
摘要:本片内容: 堆排序 堆排序 最大堆: 二叉堆是完全二叉树或者是近似完全二叉树, 当父结点的键值总是大于或等于任何一个子节点的键值时为最大堆。(父节点大于任何一个子节点) 算法思想: 重复以上步骤,直到把最后两个元素建成最大堆并进行交换,得到的序列就是排序后的有序序列。 代码实现: 实现结果: 由上图 阅读全文
posted @ 2019-08-12 16:43 CherishTheYouth 阅读(345) 评论(0) 推荐(0) 编辑
摘要:本篇内容: 快速排序 快速排序 算法思想: 通过一趟排序将要排序的数据分割成独立的两部分, 其中一部分的所有数据都比另外一部分的所有数据都要小, 然后再按此方法对这两部分数据分别进行快速排序, 整个排序过程可以递归进行,以此达到整个数据变成有序序列。 代码实现:(递归) 实现结果: 阅读全文
posted @ 2019-08-12 11:15 CherishTheYouth 阅读(1239) 评论(1) 推荐(0) 编辑
摘要:因为希尔排序的核心思想是插入排序,所以本篇将两篇排序一起记录 本篇内容: 插入排序 希尔排序 (一)插入排序 算法思想: 把n个待排序的元素看成一个有序表和一个无序表,开始时有序表中只有一个元素,无序表中有n-1个元素; 排序过程即每次从无序表中取出第一个元素,将它插入到有序表中,使之成为新的有序表 阅读全文
posted @ 2019-08-11 17:34 CherishTheYouth 阅读(320) 评论(0) 推荐(0) 编辑
摘要:本篇内容: 冒泡排序 冒泡排序 算法思想: 冒泡排序的原理是:从左到右,相邻元素进行比较。 每次比较一轮,就会找到序列中最大的一个或最小的一个。这个数就会从序列的最右边冒出来。 代码实现: 运行结果: 阅读全文
posted @ 2019-08-11 15:56 CherishTheYouth 阅读(477) 评论(0) 推荐(0) 编辑
摘要:以下几篇随笔都是记录的我实现八大排序的代码,主要是贴出代码吧,讲解什么的都没有,主要是为了方便我自己复习,哈哈,如果看不明白,也不要说我坑哦! 本片分为两部分代码: 常用方法封装 排序算法里需要频繁使用 交换数组中两数位置 的操作,另外,为了方便我打印数组查看结果,我封装一个 ArrayBase.j 阅读全文
posted @ 2019-08-11 15:45 CherishTheYouth 阅读(675) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示