算法学习之路:分治策略-归并排序-java实现
2017-11-13 10:47
274 查看
归并排序
递归求解问题
分治在每层递归的3个步骤:
step1 分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题;
step2 解决:若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题
step3 合并:将各个子问题的解合并为原问题的解。
归并排序使用分治算法。
合并函数:merge(A,p,q,r) , 时间复杂度:O(n)
递归排序函数:
测试数据:
测试结果:
递归求解问题
分治在每层递归的3个步骤:
step1 分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题;
step2 解决:若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题
step3 合并:将各个子问题的解合并为原问题的解。
归并排序使用分治算法。
合并函数:merge(A,p,q,r) , 时间复杂度:O(n)
递归排序函数:
测试数据:
测试结果:
相关文章推荐
- 算法学习之路:分治策略-最大子数组-java实现
- 算法学习之路:动态规划-钢条切割-java实现
- 一步步学习数据结构和算法之归并排序效率分析及java实现
- 算法学习之路:动态规划-最大公共子序列-java实现
- 算法(第四版)学习笔记之java实现归并排序
- 设计模式学习笔记之策略模式(Java实现)
- 《数据结构与算法——C语言实现》学习笔记——归并排序
- 算法学习之堆排序(java实现)
- java学习之路——小例子(实现输入年份,输出该年份的具体天数信息)
- 常见算法学习及其Java实现--插入排序算法
- 算法学习——LSC最大公有子序列 java实现
- 一步步学习数据结构和算法之折半插入排序效率分析及java实现
- 几种常见排序算法之Java实现(插入排序、希尔排序、冒泡排序、快速排序、选择排序、归并排序)
- 一步步学习数据结构和算法之冒泡排序效率分析及java实现
- 一步步学习数据结构和算法之快速排序效率分析及java实现
- java学习之路--单例模式的实现
- 怎样用Java实现网桥自学习算法啊??
- 算法学习之排序学习之基数排序,计数排序及java实现
- java学习之路----java类库----Arrays对对象的排序---二叉树实现原理
- 常见算法学习及其Java实现--冒泡算法实现