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

    package MergeSort;
    /**
     * 归并排序
     * @author root
     *
     */
    public class MergeSort {
    	
    	static int[] data = {0,2,4,5,3,1,7,6};
    	
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		sort(data, 1, data.length-1);
    		print(data);
    	}
    	//二路归并算法
    	public static void sort(int[] data, int low, int high){
    		if(low<high){
    			int mid = (low+high)/2;
    			sort(data, low, mid);
    			sort(data, mid+1, high);
    			merge(data, low, mid, high);
    		}
    	}
    	//归并两个数组,将data中data[i]-data[m]和data[m+1]-data[n]归并到target
    	public static void merge(int[] data, int low, int mid, int high){
    		if(low==high){
    			return;
    		}
    		int[] target = new int[high-low+1];
    		int i=low;
    		int j=mid+1;
    		int k=0;
    		
    		while(i<=mid && j<=high){
    			if(data[i]<=data[j]){
    				target[k++] = data[i++];
    			}else{
    				target[k++] = data[j++];
    			}
    		}
    		while(i<=mid){
    			target[k++] = data[i++];
    		}
    		while(j<=high){
    			target[k++] = data[j++];
    		}
    		for(i=0,j=low; i<target.length; i++,j++){
    			data[j]=target[i];
    		}
    	}
    	
    	public static void print(int[] data){
    		for(int i=1; i<data.length; i++){
    			System.out.print(data[i]);
    		}
    		System.out.println();
    	}
    }
    

  • 相关阅读:
    高精度加法
    高精度计算(一)
    算法总结
    崛起之路
    2015浙江高考满分作文汇总(9篇)
    努力
    NOIP2015总结
    P3197 [HNOI2008]越狱[组合数学]
    【原创】SPFA判负环
    P1351 联合权值[鬼畜解法]
  • 原文地址:https://www.cnblogs.com/yan456jie/p/5369404.html
Copyright © 2011-2022 走看看