码迷,mamicode.com
首页 > 编程语言 > 详细

在归并排序(合并排序)中的小数组使用插入排序

时间:2015-03-13 18:29:10      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:

长度为n,分为n/k个小数组,每个长度为k

问K取何值时能使效率最高

易得O(n)=nk+nlg(n/k)

nk是n/k个小数组进行插入排序k×k,得nk

nlg(n/k)是n/k个数组进行归并需要lg(n/k)次合并,每次代价为n的

答案

应为lgn

O(n)=nk+nlgn-nlgk

若k>lgn,则前半部分大于归并排序时间复杂度,,故K最大为lgn。

取最大值时应为最优

 

在归并排序(合并排序)中的小数组使用插入排序

标签:

原文地址:http://www.cnblogs.com/kangyun/p/4335483.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!