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];
            }
        }
  • 相关阅读:
    soa
    最短路径分词
    Collector
    solr params.json
    oracle第一章
    记一次web项目总结
    java.util 类 TreeSet<E>
    自定义jstl标签库
    java二维数组简单初步理解
    Java中Array的常用方法
  • 原文地址:https://www.cnblogs.com/dongma/p/13235041.html
Copyright © 2011-2022 走看看