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

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

package com.hbu;import java.util.Arrays;/** * Created by chenwei on 2017/12/6. */public class MergeSort {    /**     * 归并排序     * 简介:将两个(或两个以上)有序表合并成一个新的有序表 即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列     * 时间复杂度为O(nlogn)     * 稳定排序方式     * @param nums 待排序数组     * @return 输出有序数组     */    public static int[] sort(int[] nums,int low,int high){        int mid = low + (high - low)/2;        if(low < high){            //左边            sort(nums,low,mid);            //右边            sort(nums,mid +1,high);            //左右归并            merge(nums,low,mid,high);        }        return nums;    }    public static void merge(int[] nums, int low, int mid, int high) {        int[] temp = new int[high - low + 1];        int i = low;// 左指针        int j = mid + 1;// 右指针        int k = 0;        //把较小的数先移到新数组中        while(i <= mid && j<=high){            if (nums[i] < nums[j]) {                temp[k++] = nums[i++];            } else {                temp[k++] = nums[j++];            }        }        // 把左边剩余的数移入数组        while (i <= mid) {            temp[k++] = nums[i++];        }        // 把右边剩余的数移入数组        while (j <= high) {            temp[k++] = nums[j++];        }        // 把新数组中的数覆盖nums数组        for (int k2 = 0; k2 < temp.length; k2++) {            nums[k2 + low] = temp[k2];        }    }    public static void main(String[] args){        int[] nums = { 2, 7, 8, 3, 1, 6, 9, 0, 5, 4 };        MergeSort.sort(nums, 0, nums.length-1);        System.out.println(Arrays.toString(nums));    }    }

转载地址:http://hoddi.baihongyu.com/

你可能感兴趣的文章
通过url方式传递中文乱码解决办法
查看>>
Java的初始化机制、垃圾回收机制和内存分配机制
查看>>
MySQL5.6安装步骤(windows7/8_64位)
查看>>
FreeMarker基础配置
查看>>
Java中使用Jedis操作Redis
查看>>
Redis中常用命令
查看>>
spring下载
查看>>
读取request流
查看>>
微信消息模板的配置
查看>>
Spring框架结合Quartz实现任务调度实例
查看>>
Quartz Cron表达式 在线生成器
查看>>
struts2中action接收参数的3种方法
查看>>
java获取随机数
查看>>
url中传递中文参数时的转码与解码
查看>>
百度Ueditor设置允许上传的图片格式及大小
查看>>
java图形验证码生成工具类及web页面校验验证码
查看>>
微信菜单的配置
查看>>
移动端的emoji表情符号插入MySQL数据库失败
查看>>
mysql对指定列进行排名
查看>>
Eclipse安装FindBugs插件
查看>>