zoukankan      html  css  js  c++  java
  • 算法之二路归并排序

    public class SortTest {
        private static int ARRAY_NUMBER=10;
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            //准备待排序的序列
            Random random = new Random();
            int[] array = new int[ARRAY_NUMBER];
            for(int i = 0 ; i < array.length; i++){
                array[i] = random.nextInt(20);
            }
            System.out.println("数组的初始排序如下:
    ");
            System.out.println(Arrays.toString(array));
            mergeSort(array,0,array.length-1);
            System.out.println("数组的归并排序后如下:
    ");
            System.out.println(Arrays.toString(array));
        }
        //二路归并排序
        private static void mergeSort(int[] list,int left,int right){
            if(left < right){
                int mid = (left+right)/2;
                mergeSort(list,left,mid);
                mergeSort(list,mid+1,right);
                mergeration(list,left,mid,right);
            }
        }
        private static void mergeration(int[] list, int left, int mid, int right) {
            // TODO Auto-generated method stub
            int i,j,k;
            int[] temp = new int[right-left+1];
            k = 0;
            i=left;
            j=mid+1;
            while(i<=mid&&j<=right){
                if(list[i] <= list[j]){
                    temp[k++] = list[i++];
                }else{
                    temp[k++] = list[j++];
                }
            }
            while(i<=mid){
                temp[k++] = list[i++];
            }
            while(j<=right){
                temp[k++] = list[j++];
            }
            //排好序后复制回原来数组的相应分段中
            for(i=0;i<temp.length;i++){
                list[left+i]=temp[i];
            }
        }
    
    }
  • 相关阅读:
    Android入门:Button
    Android入门:部署时的常见错误
    to be
    Android入门:单元测试
    忘记 MySQL 的 root 帐号密码该怎么办
    Eclipse开发build path中jar包部署到应用中
    报告两个bug
    本站导引
    一个用Word做报表设计的报表系统windwardreports
    智能互联网
  • 原文地址:https://www.cnblogs.com/fengyan20150508/p/7806935.html
Copyright © 2011-2022 走看看