- 5
- 0
- 约5.64千字
- 约 10页
- 2016-09-21 发布于重庆
- 举报
浅谈算法和数据结构 三 合并排序.docx
HYPERLINK /yangecnu/p/Introduce-Merge-Sort.html 浅谈算法和数据结构: 三 合并排序
合并排序,顾名思义,就是通过将两个有序的序列合并为一个大的有序的序列的方式来实现排序。合并排序是一种典型的分治算法:首先将序列分为两部分,然后对每一部分进行循环递归的排序,然后逐个将结果进行合并。
?
合并排序最大的优点是它的时间复杂度为O(nlgn),这个是我们之前的选择排序和插入排序所达不到的。他还是一种稳定性排序,也就是相等的元素在序列中的相对位置在排序前后不会发生变化。他的唯一缺点是,需要利用额外的N的空间来进行排序。
一 原理
合并排序依赖于合并操作,即将两个已经排序的序列合并成一个序列,具体的过程如下:
申请空间,使其大小为两个已经排序序列之和,然后将待排序数组复制到该数组中。
设定两个指针,最初位置分别为两个已经排序序列的起始位置
比较复制数组中两个指针所指向的元素,选择相对小的元素放入到原始待排序数组中,并移动指针到下一位置
重复步骤3直到某一指针达到序列尾
将另一序列剩下的所有元素直接复制到原始数组末尾
该过程实现如下,注释比较清楚:
private static void Merge(T[] array, int lo, int mid, int hi)
{
int i = lo, j = mid + 1;
您可能关注的文档
- 扳手劲比赛(第九课).ppt
- 承保系统整体方案.ppt
- 技术创新的文化环境樊浩.pdf
- 技术变革与利润率置盐信雄.pdf
- 把握政策进一步深化基础教育课程改革魏成英.ppt
- 投行培训课程.ppt
- 投资公司专题PE私募基金运作模式报告.ppt
- 投资台湾入口网一般公司设立作业流程.pdf
- 投资法人制度的导入与投资者保护以日本法为借鉴.pdf
- 投资者交易行为与市场波动文献综述及其引申张宗成.pdf
- 2026年碳汇林十年投资:林业固碳与生态补偿机制报告.docx
- 2026年超声波传感器在智能电视行业应用趋势报告.docx
- 2026年医药冷链技术创新十年发展报告.docx
- 2026年全球人工智能在医疗领域应用前景分析行业报告.docx
- 电子制造资管2026五年产业趋势报告.docx
- 2026年家居行业安装与维修服务创新报告.docx
- 贵州文化旅游职业学院《工厂设计与环境保护》2023-2024学年第二学期期末试卷.doc
- 校园失物招领图像识别系统中的多尺度特征提取研究教学研究课题报告.docx
- 2026年家居电商十年发展跨界合作报告.docx
- 2026年手机壳定制服务行业报告:市场潜力与行业挑战.docx
原创力文档

文档评论(0)