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];
            }
        }
    
    }
  • 相关阅读:
    第一阶段冲刺第三天
    第一阶段冲刺第二天
    第一阶段冲刺第一天
    典型用户和场景
    第十周学习进度条
    第九周学习进度条
    会议视频
    课堂练习……找水王
    小组项目需求——NABCD
    第二阶段个人总结三
  • 原文地址:https://www.cnblogs.com/fengyan20150508/p/7806935.html
Copyright © 2011-2022 走看看