博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java数据结构和算法-归并排序
阅读量:2444 次
发布时间:2019-05-10

本文共 633 字,大约阅读时间需要 2 分钟。

归并排序:

归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。

可以看到这种结构很像一棵完全二叉树,本文的归并排序我们采用递归去实现(也可采用迭代的方式去实现)。阶段可以理解为就是递归拆分子序列的过程,递归深度为log2n。

归并排序是稳定排序,它也是一种十分高效的排序,能利用完全二叉树特性的排序一般性能都不会太差。java中Arrays.sort()采用了一种名为TimSort的排序算法,就是归并排序的优化版本。从每次合并操作的平均时间复杂度为O(n),而完全二叉树的深度为|log2n|。总的平均时间复杂度为O(nlogn)。而且,归并排序的最好,最坏,平均时间复杂度均为O(nlogn)。

归并排序Java实现:

package com.algorithm.sort;public class MergeSort {    public static void main(String[] args) {        int[] a={19,2,3,90,67,33,-7,24,56,34,5};        int left=0;        int right=a.length-1;        if(left

链接:

转载地址:http://jrpqb.baihongyu.com/

你可能感兴趣的文章
plex 乱码_如何优化电影和电视节目以流畅地播放Plex
查看>>
iphone获取imei_如何为您的iPhone或iPad查找序列号或IMEI
查看>>
linux中为用户添加权限_如何在Linux中为“ cd”命令定义基本目录
查看>>
使用Facebook的“今天”来清理您的Facebook过去
查看>>
谷歌 订阅日历_如何使用iCalShare查找和订阅几乎所有内容的日历
查看>>
如何使Apple Watch屏幕保持更长的时间
查看>>
windows 右键快捷键_了解Windows 8中的新快捷键
查看>>
即时配置文件_如何即时转到OS X中的位置和文件夹
查看>>
在Windows 7、8.x,10或Vista中免费调整分区大小
查看>>
onedrive共享文件_如何在Windows 10中从OneDrive共享文件和文件夹
查看>>
安卓6.0对系统隐私_如何在Android 5.0中固定屏幕以提高安全性和隐私性
查看>>
windows锁定文件夹_如何在Windows中锁定文件以阻止删除或覆盖?
查看>>
如何根据您的位置自动更改默认打印机
查看>>
8.1禁用所有应用通知_如何在Windows 8中禁用烤面包机通知
查看>>
opera浏览器缓存文件夹_在Opera中更改文件类型的操作
查看>>
ubuntu共享文件夹挂载_如何在Ubuntu中挂载远程文件夹
查看>>
将拼写检查添加到您喜欢的Windows应用程序
查看>>
在Internet Explorer 8中预览和验证URL
查看>>
如何将实时网页添加到PowerPoint演示文稿
查看>>
使用Regator监控趋势主题,收藏博客等
查看>>