博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
归并排序
阅读量:5958 次
发布时间:2019-06-19

本文共 1285 字,大约阅读时间需要 4 分钟。

归并排序原理:

 利用分治的思想,通过递归来实现的,

 

java代码:

/**     * 归并排序:不是原地排序,时间复杂度O(n*longN),稳定排序     *     * @param arr     * @return     */    public static int[] guibing(int[] arr) {        if (arr.length == 1) {            return arr;        }        int mod = arr.length / 2;        int[] a = new int[mod];        int[] b = new int[arr.length - mod];        System.arraycopy(arr, 0, a, 0, mod);        System.arraycopy(arr, mod, b, 0, arr.length - mod);        return hebing(guibing(a), guibing(b));    }  /**     * 两个有序数组合并     *     * @param a     * @param b     * @return     */    public static int[] hebing(int[] a, int[] b) {        int[] result = new int[a.length + b.length];        int index_a = 0, index_b = 0;        for (int i = 0; i < result.length; i++) {            if (index_a >= a.length) {                result[i] = b[index_b++];                continue;            }            if (index_b >= b.length) {                result[i] = a[index_a++];                continue;            }            if (a[index_a] <= b[index_b]) {                result[i] = a[index_a++];            } else {                result[i] = b[index_b++];            }        }        return result;    }

性能分析:

时间复杂度:O(n*logN)

空间复杂度:O(n)

原地排序:否

稳定排序:是

 

转载于:https://www.cnblogs.com/zhanghaodong/p/10337824.html

你可能感兴趣的文章
Java集合框架GS Collections具体解释
查看>>
洛谷 P2486 BZOJ 2243 [SDOI2011]染色
查看>>
数值积分中的辛普森方法及其误差估计
查看>>
Web service (一) 原理和项目开发实战
查看>>
跑带宽度多少合适_跑步机选购跑带要多宽,你的身体早就告诉你了
查看>>
广平县北方计算机第一届PS设计大赛
查看>>
深入理解Java的接口和抽象类
查看>>
java与xml
查看>>
Javascript异步数据的同步处理方法
查看>>
iis6 zencart1.39 伪静态规则
查看>>
SQL Server代理(3/12):代理警报和操作员
查看>>
Linux备份ifcfg-eth0文件导致的网络故障问题
查看>>
2018年尾总结——稳中成长
查看>>
JFreeChart开发_用JFreeChart增强JSP报表的用户体验
查看>>
度量时间差
查看>>
通过jsp请求Servlet来操作HBASE
查看>>
Shell编程基础
查看>>
Shell之Sed常用用法
查看>>
3.1
查看>>
校验表单如何摆脱 if else ?
查看>>