归并排序(分治算法)

所谓分治:字面上的意思就是分而治之。

举个较形象例子(跟题目无关):如果现在耕种田并不是一亩亩的,而是几十亩田形成一块,啥都种,棉花、水稻、小麦全都种在一起,那么会极度不好管理,每一种农作物都有特定的管理方式,也需要打一些特定的药,所以不能放在一起管理。这个时候就要把这些农作物区分开来,分别种植,这也算是分而治之,现代语言即:分开管理。

归并排序算是分治中比较典型的一个例子,时间复杂度很低,但是我个人认为并没有冒泡、选择等排序算法好理解,且代码量比这几类算法多不少,但是时间复杂度低很多很多。冒泡、插入也是最稳定的算法。

归并时间复杂度:O(n log n)

冒泡、选择、插入:O(n2)

其余排序不多做解释了,主要是介绍归并.

 

归并排序的原理(从小到大):

有数列:5,6,1,3,4

第一次分:①5,6                   ②1,3,4 (或前半部分多一个,问题不大),分成如上两块

分成5  6 两块(发现每块少于一个,不需要往下继续分)

 

②1,3     4分成这两块

    将1,3分为 1  3两块(无需继续做)

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值