归并排序

算法是基础,小蓝同学准备些总结一系列算法分享给大家,这是第三篇《归并排序》,非常赞!希望对大家有帮助,大家会喜欢!

前面系列文章:

#算法基础#选择和插入排序

由快速排序到分治思想

归并排序也是分治思想的一个案例,他将一个数组分成两个数组,分别按上面的再次细分进行排序,这两个数组最后合并到一个数组内,并同时排序这就得到一个有序的归并数组。(归并实现代码有彩蛋哦)

如图

照例上代码:

1、排序方法 a为数组 i为数组开头 j为数组结尾

2、归并方法 传数组数组开头序数中间数数组结尾序数

判断大小

特性:

多索引稳定 时间复杂度NLogN 空间复杂度 N

使用场景及优缺点:

我们从他的特性可以推断出他的使用场景,归并排序和快速排序比起来更慢一点,但他的优点在于多索引的稳定性。

使用它的使用场景

1、银行大批量数据排序

2、Excel普通排序

等等

原文发布于微信公众号 - 大数据和云计算技术(jiezhu2007)

原文发表时间:2018-01-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Jackson0714

项目中遇到的扩展方法-总结和分享

3197
来自专栏Golang语言社区

实效go编程--1

实效Go编程 版本:2013年12月22日 引言 示例 格式化 注释 命名 包名 获取器 接口名 驼峰记法 分号 控制结构 If 重新声明与再次赋值 For S...

3439
来自专栏风口上的猪的文章

.NET面试题系列[6] - 反射

在面试中,通常会考察反射的定义(操作元数据),可以用反射做什么(获得程序集及其各个部件),反射有什么使用场景(ORM,序列化,反序列化,值类型比较等)。如果答得...

682
来自专栏博客园

.NET面试题解析(05)-常量、字段、属性、特性与委托

上面一段非常简单代码,其生产的IL代码如下,在使用常量变量的地方,把她的值拷过来了(把常量的值内联到使用的地方),与常量变量A.PORT没有关系了。假如A引用了...

781
来自专栏撸码那些事

C#集合类型大揭秘

集合是.NET FCL(Framework Class Library)的重要组成部分,我们平常撸C#代码时免不了和集合打交道,FCL提供了丰富易用的集合类型,...

1877
来自专栏GopherCoder

『Go 语言学习专栏』-- 第四期

1293
来自专栏技术博客

C#基础知识系列二(值类型和引用类型、可空类型、堆和栈、装箱和拆箱)

  之前对几个没什么理解,只是简单的用过可空类型,也是知道怎么用,至于为什么,还真不太清楚,通过整理本文章学到了很多知识,也许对于以后的各种代码优化都有好处。

853
来自专栏拂晓风起

java.io.CharConversionException: Not an ISO 8859-1 character: xx

1226
来自专栏软件开发 -- 分享 互助 成长

快速排序

如果说希尔排序是简单插入排序的升级,堆排序是简单选择排序的升级,那么快速排序就是冒泡排序的升级了。相对于冒泡排序,快速排序增大了记录比较和移动的距离,将关键字较...

1866
来自专栏逸鹏说道

如何让所有实体类用相同名称的主键(很有力的问题,比如所有表实体主键都用ID)

这个问题比较有力量,哈哈! 例如:有两个表userbases和products 两个表的主键分别为UserID和ProductID,那么,我想问有没有一种方法把...

2995

扫码关注云+社区