归并排序时间复杂度分析
来源:互联网 发布:网络借贷暂行管理办法 编辑:程序博客网 时间:2024/05/22 17:16
归并排序时间复杂度分析
主要参考了他的博文,他还讲解了其他排序的时间复杂度分析及算法实现。
可以说合并排序是比较复杂的排序,特别是对于不了解分治法基本思想的同学来说可能难以理解。总时间=分解时间+解决问题时间+合并时间。分解时间就是把一个待排序序列分解成两序列,时间为一常数,时间复杂度o(1).解决问题时间是两个递归式,把一个规模为n的问题分成两个规模分别为n/2的子问题,时间为2T(n/2).合并时间复杂度为o(n)。总时间T(n)=2T(n/2)+o(n).这个递归式可以用递归树来解,其解是o(nlogn).此外在最坏、最佳、平均情况下归并排序时间复杂度均为o(nlogn).从合并过程中可以看出合并排序稳定。
用递归树的方法解递归式T(n)=2T(n/2)+o(n):假设解决最后的子问题用时为常数c,则对于n个待排序记录来说整个问题的规模为cn。
从这个递归树可以看出,第一层时间代价为cn,第二层时间代价为cn/2+cn/2=cn…..每一层代价都是cn,总共有logn+1层。所以总的时间代价为cn*(logn+1).时间复杂度是o(nlogn).
阅读全文
0 0
- 归并排序时间复杂度分析
- 归并排序及其时间复杂度分析
- 归并排序及其时间复杂度分析
- 归并排序及其时间复杂度分析
- 归并排序及其时间复杂度分析
- 归并排序及其时间复杂度分析
- 自然归并排序算法时间复杂度分析
- 归并排序实现及时间复杂度分析
- 插入排序和归并排序实现以及时间复杂度分析
- 归并排序的分治算法与时间复杂度分析
- 归并排序的原理及时间复杂度
- 归并排序(时间复杂度O(nlgn)(最坏))
- 归并排序时间复杂度----主定理
- 插入排序 和 归并排序(分治)的c实现和时间复杂度分析
- 简单排序算法时间空间复杂度分析及应用(8)-归并排序
- 快速排序时间复杂度分析
- 快速排序时间复杂度分析
- 快速排序时间复杂度分析
- 侧滑加传值
- Android零基础入门第60节:日历视图CalendarView和定时器Chronometer
- hbase命令 (总结1)
- XListView 的运用步骤
- 自动化爬取开开贷借贷黑名单(python&selenium)
- 归并排序时间复杂度分析
- spring boot(18)-servlet、filter、listener
- The Unique MST
- opencv鼠标操作setMouseCallback()与on_MouseHandle()
- 本地项目提交到远程git
- DataTable统计遇到的几种问题
- 给你一台大疆无人机,你能用来做点啥?(二)-----——倾斜摄影建模
- xUtils3.3.x注解使用实例
- C#基础-055 字符串部分系统方法测试