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

    https://www.bilibili.com/video/BV1Zt411o7Rn?p=25

    参考:这个视频借鉴的归并写法

    主要逻辑在对排好后的两个数组进行归并逻辑,

    就是有一个指向第一个数组的指针 i

    有一个指向第二个数组的指针 j

    进行比较并将小的结果放进临时数组,直到一方遍历完成为止,然后再把没有遍历完的数组依次进入数组即可

     private static void mergeSort(int[] arr, int start , int end){
            if(start >= end){
                return;
            }
            int mid = (end + start) / 2;
            mergeSort(arr,start,mid);
            mergeSort(arr,mid+1,end);
            merge(arr,start,mid ,end);
        }
    
        private static void merge(int[] arr, int start, int mid, int end) {
            int[] temp = new int[end - start + 1];
            int leftIndex = start;
            int rightIndex = mid + 1;
            int index = 0;
            while (leftIndex <= mid && rightIndex <= end ){
                if(arr[leftIndex] < arr[rightIndex]){
                    temp[index] = arr[leftIndex];
                    leftIndex++;
                }else {
                    temp[index] = arr[rightIndex];
                    rightIndex++;
                }
                index++;
            }
            while (leftIndex <= mid){
                temp[index] = arr[leftIndex];
                leftIndex++;
                index++;
            }
            while (rightIndex <= end){
                temp[index] = arr[rightIndex];
                rightIndex++;
                index++;
            }
    
            for (int i = 0; i < temp.length; i++) {
                arr[start + i] = temp[i];
            }
        }
  • 相关阅读:
    hdu5081
    hdu5079
    hdu5076
    hdu5072
    codeforces 739E
    codeforces 739D
    2017.2其他简要题解
    spring事务传播回滚策略
    mybatis一级缓存和二级缓存
    spring-boot-mybatis-starter工作原理
  • 原文地址:https://www.cnblogs.com/dongma/p/13235041.html
Copyright © 2011-2022 走看看