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

    归并排序,要理解其排序的方法,就是将数组分成大小相同的两个序列,直至每个序列都有一个数为止,然后进行合并,所以分为,分解 合并两个操作

    具体代码如下:

    import java.util.Arrays;

    public class TestMargeSort {
        public static void main(String[] args) {
            int[] arr = {4,9,15,24,30,2,6,18,20};
            MargeSort(arr,0,arr.length-1);
            System.out.println(Arrays.toString(arr));
        }
        private static void MargeSort(int[] arr,int low,int high){//分解操作
            if(low<high){//没有加条件,无限递归下去,栈内存溢出
                int mid=(low+high)/2;
                MargeSort(arr,low,mid);
                MargeSort(arr,mid+1,high);
                Marge(arr,low,mid,high);
            }
            
        }
        private static void Marge(int[] arr,int low,int mid,int high){//合并操作
            int[] arrB =new int[high-low+1];//辅助数组
            int i=low;
            int j=mid+1;
            int k=0;
            while(i<=mid&&j<=high){
                if(arr[i]<arr[j]){
                    arrB[k++]=arr[i++];
                }else{
                    arrB[k++]=arr[j++];
                }
            }
            while(i<=mid)
                arrB[k++]=arr[i++];
            while(j<=high)
                arrB[k++]=arr[j++];
            for(i=low,k=0;i<=high;i++,k++){
                arr[i]=arrB[k];
            }
            
        }
    }

  • 相关阅读:
    sqlserver tips
    mysql tips
    小知识点集锦
    设计模式
    将微博或者qq空间的说说同步至博客园 wcf+js(ajax)跨域请求(1)
    WCF服务寄宿IIS与Windows服务
    C# 基础小知识之yield 关键字
    WPF命令绑定 自定义命令
    KnockOut 绑定之foreach绑定(mvc+knockout)
    P5019 铺设道路
  • 原文地址:https://www.cnblogs.com/wanglingdeboke/p/9471454.html
Copyright © 2011-2022 走看看