算法分析——归并排序

算法分析:归并排序
刚刚看了网易公开课上的算法导论的第一节,讲的是插入排序和归并排序。
插入排序很简单
双重循环,第一层循环i从1到n,第二层循环j从0到i,将元素插入的0到i已经排好序的序列中正确的位置,这就是插入排序。
时间复杂度的最坏情况是1+2+3+4+···+n也就是n*(n+1)/2,最后时间复杂度就是n^2.
归并排序感触颇深,想详细总结一下
对于一个有n个元素的数组(1,2,3···n)的排序,假设从 1 到 (n/2的向上取整) 为有序的,(n/2+1的向上取整)到 n 也是有序的,那么将这两个数组合并,得到完整有序的数组所需要花费的时间为n。
递归第二层:
同理,对于数组的前(n/2的向上取整)个元素的排序,同样假设从 1 到(n/4的向上取整)为有序的,(n/4+1的向上取整)到 (n/2的向上取整)为有序的,那么得到完整有序的前(n/2的向上取整)个元素所花费的时间为n/2。
递归第三层:。。。
如图:



所以总的时间复杂度应该是n*log(n)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值