归并排序
来源:互联网 发布:努比亚照相机软件下载 编辑:程序博客网 时间:2024/06/13 21:14
归并:将两个或两个以上的有序表组合成一个新的有序表
2-路 归并排序
排序过程
初始序列看成n个有序子序列,每个子序列长度为1
两两合并,得到n/2个长度为2或1的有序子序列
再两两合并,重复直至得到一个长度为n的有序序列为止
void Merge(RedType R[],RedType &T[],int low,int mid,int high) { i=low;j=mid+1;k=low; while(i<=mid&&j<=high){ if(R[i].key<=R[j].key) T[k]=R[i++]; else T[k]=R[j++];} while(i<=mid) T[k++]=R[i++]; while(j<=high) T[k++]=R[j++];}
算法分析时间效率:O(nlog2n)
空间效率:O(n)
稳定性:稳定
排序算法比较
1.为避免顺序存储时大量移动记录的开销,可以考虑用链式作为存储结构
直接插入排序、归并排序
2.不宜采用链式作为存储结构的
折半插入排序、希尔排序、快速排序、堆排序
排序算法选择规则
n较大时
(1)分布随机,稳定性不做要求,则采用快速排序
(2)内存允许,要求排序稳定时,则采用归并排序
(3)可能会出现正序或逆序,稳定性不做要求,则采用堆排序或归并排序
n较小时
(1)基本有序,要求稳定,则采用直接插入排序
(2)分布随机,稳定性不做要求,则采用直接选择排序,若排序码不接近逆序,也可以采用直接插入排序。
1 0
- 归并排序-归并排序
- 归并和归并排序
- 归并与归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 排序::归并
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- Codeforces 4D Mysterious (DP)
- vs2010 静态库的生成与使用
- USB 协议
- STUN/TURN/ICE协议在P2P SIP中的应用(一)
- 从相机(相册)获取图片并剪裁的最佳实践
- 归并排序
- 浏览器检测
- Android事件处理
- rpm/yum命令记录
- Lua C API 研究 —— 基础篇
- linux unlink函数
- Poj 2750 Potted Flower
- STUN/TURN/ICE协议在P2P SIP中的应用(二)
- Java中守护线程的总结