zoukankan      html  css  js  c++  java
  • 归并排序

    归并排序执行流程:

    public class MergeSort {
        public static void main(String[] args) {
            int arr[]={2,3,4,0,3,5,15,23};
            mergeSort(arr,0,arr.length-1);
            System.out.println(Arrays.toString(arr));
        }
        public static void mergeSort(int []arr,int L,int R)
        {
            if (L==R)
                return;
            int mid=(L+R)/2;
            //处理左边
            mergeSort(arr,L,mid);
            //处理右边
            mergeSort(arr,mid+1,R);
            //归并
            merge(arr,L,mid,R);
        }
    
        public static void merge(int []arr,int L,int mid,int R)
        {
            //用于存储归并后的临时数组
           int temp[]=new int[R-L+1];
           //记录第一个数组中需要遍历的下标
           int i=L;
           //记录第二个数组中需要遍历的下标
           int j=mid+1;
           //用于记录在临时数组中存放的下标
            int inedx=0;
           //遍历两个数组去除小的放入临时数组
           while (i<=mid&&j<=R)
           {
               temp[inedx++]=arr[i]<arr[j]?arr[i++]:arr[j++];
    //           if (arr[i]<=arr[j])
    //           {
    //               //将小的数放入临时数组
    //               temp[inedx]=arr[i];
    //               //下标向后移动
    //               i++;
    //           }else {
    //               //将小的数放入临时数组
    //               temp[inedx]=arr[j];
    //               //下标向后移动
    //               j++;
    //           }
    //           //移动临时数组下标;
    //           inedx++;
           }
           //处理第二个数组多余的情况
           while (j<=R)
           {
               temp[inedx++]=arr[j++];
           }
           //处理第一个数组多余的情况
           while (i<=mid)
           {
               temp[inedx++]=arr[i++];
           }
           //将临时数组中的数组重新存入原数组
           for (int k=0;k<temp.length;k++)
           {
               arr[L+k]=temp[k];
           }
        }
    
    }
  • 相关阅读:
    JavaScript(ASP)常用代码
    用JavaScript + jMail发邮件
    SQL语句导入导出大全
    C#编程方式执行包的任务
    匹配版本号
    c# web 页面帮定数据的 7中方式
    好书
    奇怪的异步调用,那位高手能帮忙看一下?
    vb6 调用c# 服务
    易犯的错误忘了初始化对象
  • 原文地址:https://www.cnblogs.com/dloading/p/10803856.html
Copyright © 2011-2022 走看看