美文网首页
【算法-排序算法-归并排序】

【算法-排序算法-归并排序】

作者: 西经使徒 | 来源:发表于2019-08-09 14:13 被阅读0次

上篇文章说的是快速排序,这篇文章将归并排序。

归并排序和快速排序的思路有类似的地方,都是二分思想+递归调用的思路。但归并排序的核心技巧是两个有序数组的合并,快速排序的核心在于找到中间元素并使左边的元素小于中间元素,右边元素大于或等于中间元素。下面是练习代码
public class GuibinSort {
    public static void main(String[] args){
        int[] arrs = {12,3,5,1,7,5,44,80};
        gbsort(arrs,0,arrs.length-1);
        for (int b : arrs){
            System.out.print(b + "," );
        }
    }
    public static void gbsort(int[] arrs,int low,int high){
        if(low==high){
            return;
        }
        int mid = low + (high-low)/2;
        gbsort(arrs,low,mid);
        gbsort(arrs,mid+1,high);

        //两个排序数组合并,这里是核心思想,使用两个指针
        int j=mid+1;
        int i=low;
        int[] clone = arrs.clone();
        for(int k=low;k<=high;k++){
            if(i>mid && j<=high){
                arrs[k] = clone[j++];
                continue;
            }
            if(j>high && i<=mid){
                arrs[k] = clone[i++];
                continue;
            }
            if(clone[i]>clone[j]){
                arrs[k] = clone[j++];
                continue;
            }
            arrs[k] = clone[i++];
        }
    }
}

相关文章

  • java实现快速排序、归并排序、希尔排序、基数排序算法...

    快速排序算法 归并排序算法 希尔排序算法 基数排序算法

  • 2018-06-30

    排序算法之归并排序 归并排序算法是排序算法中的经典算法之一,其核心思想是利用归并的思想实现的排序方法,该算法采用经...

  • web开发需要知道的几个算法

    算法分类 快速排序算法 深度优先算法 广度优先算法 堆排序算法 归并排序算法

  • 排序算法之归并排序

    归并排序(Merge Sort) 归并排序是利用归并的思想实现排序的方式,该算法采用的是经典的分治算法 归并排序过...

  • 归并排序

    归并排序 这个排序算法是建立在归并操作上的一种有效的排序算法,算法主要采用分治法,归并排序的算法复杂度为O(n*l...

  • 第三章:高级排序算法

    归并排序算法(mergeSort) 算法思想:Python使用函数实现: 自底向上的归并排序算法 算法思想:Pyt...

  • 归并排序

    图解排序算法(四)之归并排序 基本思想 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用...

  • 排序算法(五)归并排序

    排序算法(五 )归并排序 1.算法思路  归并排序(Merge-Sort)是一种基于二叉堆及分而治之思想的排序算法...

  • 归并排序

    归并排序(Merge Sort): 归并排序是一个相当“稳定”的算法对于其它排序算法,比如希尔排序,快速排序和堆排...

  • 算法入门——归并排序、希尔排序

    上篇文章我们学习了算法入门——堆排序,这篇文章我们学习算法入门——归并排序、希尔排序。 归并排序 归并排序是将一个...

网友评论

      本文标题:【算法-排序算法-归并排序】

      本文链接:https://www.haomeiwen.com/subject/sqfhjctx.html