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

    package org.example.sort;
    
    import java.util.Arrays;
    
    /**
     * @author xianzhe.ma
     * @date 2021/8/9
     */
    
    public class Mergesort {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
    
            int[] a = new int[]{11, 9, 7, 5, 3, 1, 12, 10, 8, 6, 4, 2};
    
    
            int[] tmp = new int[a.length];
            mergeSort(a, 0, a.length - 1, tmp);
        }
    
        private static void merge(int[] array, int start, int middle, int end, int[] tmp) {
    
            int first = start;
            int second = middle + 1;
            int index = start;
    
    
            while ((first <= middle) && (second <= end)) {
                if (array[first] >= array[second])
                    tmp[index++] = array[second++];
                else
                    tmp[index++] = array[first++];
            }
            while (first <= middle)
                tmp[index++] = array[first++];
            while (second <= end)
                tmp[index++] = array[second++];
    
            for (first = start; first <= end; first++)
                array[first] = tmp[first];
    
    
            System.out.println("merge is " + Arrays.toString(array));
    
        }
    
        public static void mergeSort(int[] array, int start, int end, int[] tmp) {
    
            if (start >= end)
                return;
            int middle = ((end + start) >> 1);
            mergeSort(array, start, middle, tmp);// 递归划分左边的数组
            mergeSort(array, middle + 1, end, tmp);// 递归划分右边的数组
            merge(array, start, middle, end, tmp);// 对有序的两个数组进行合并成一个有序的数组
        }
    
    }
  • 相关阅读:
    IceMx.Mvc 我的js MVC 框架 二、视图的数据绑定
    IceMx.Mvc 我的js MVC 框架 一、html代码的分离(视图)
    Android Socket编程基础
    第七次作业
    第六次作业
    第五次作业
    第4次作业
    关于个人项目的总结,最主要是不足
    第二次作业
    微信的优缺点以及发展史
  • 原文地址:https://www.cnblogs.com/juniorMa/p/15119597.html
Copyright © 2011-2022 走看看