Java版归并排序
来源:互联网 发布:mac导出日历 编辑:程序博客网 时间:2024/05/17 06:42
归并排序算法的原理如下:对于给定的一组记录(假设有n个记录),首先将每两个相邻的长度为1的序列进行归并,得到n/2(向上取整数)个长度为2或1的有序子序列,再将其两两合并,反复执行此过程,直到得到一个有序序列。
所以,归并排序的关键就是前两步:
第一步:划分半子表;
第二步:合并半子表。
以数组{49,38,65,97,76,13,27}为例,归并排序的具体步骤如下:
初始关键字:[49] [38][65][97][76][13][27]
一趟归并后:[38 49] [65 97] [13 76] [27]
二趟归并后:[38 49 65 97] [13 27 76 ]
三趟归并后:[13 27 38 49 65 76 97]
程序代码如下:
程序运行结果:
536219487356219487356219487356129487123569487123564987123564978123564789123456789排序后的数组:123456789
最好时间:O(nlogn)
平均时间:O(nlogn)
最坏时间:O(nlogn)
辅助存储:O(n)
稳定性:稳定
备注:n大时较好
0 0
- Java版归并排序
- 归并排序(JAVA版)
- 归并排序—Java版
- Rhyme/归并排序Java版
- 排序算法之归并排序Java版
- 排序之归并排序java版
- java排序--归并排序
- 排序-归并排序-Java
- 归并排序解析(java版)
- 二路归并排序java版
- java版基础排序归并排
- Java版 原地二路归并排序
- 图解归并排序算法(java版)
- 归并排序Java实现
- java归并排序算法
- JAVA归并排序算法
- java归并排序
- java归并排序
- 递推—排队购票
- Windows 和 linux 网络互通 发送struct
- linux命令总结
- 关联关系
- 如何高效计算C++中的组合与排列
- Java版归并排序
- 11
- STC15系列单片机-环境监控设备
- 【leetcode】Unique Paths II
- MITK Image介绍
- Qt添加调试器
- linux中的ll
- 第十四章 并行函数程序
- 长路漫漫