长度为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。

取最大值时应为最优

 

相关文章:

  • 2022-03-05
  • 2021-06-03
  • 2021-04-15
  • 2021-12-13
  • 2021-09-12
  • 2022-12-23
  • 2021-11-04
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-01-20
  • 2021-09-26
  • 2021-04-19
  • 2022-02-24
  • 2022-12-23
相关资源
相似解决方案