美文网首页
merge sort 归并排序

merge sort 归并排序

作者: 大橙子CZ | 来源:发表于2016-06-05 21:32 被阅读0次
  • basic merg sort
    给两个排好序的序列,将它们混合排序好 NlogN
public void mergeSort(int a[],int[] aux,int io,int mid,int hi){
    //precondition:a[lo……mid],a[mid+1……hi] is sorted
    for(int i=lo;i<=hi;i++){
        aux[i] = a[i]
    }
    int p = lo,q = mid+1;
    for(int i=lo;i<=hi;i++){
        if(i>mid) a[i] = aux[q++];
        else if(q>hi) a[i] = aux[p++];
        else if(aux[p]<=aux[q]) a[i] = aux[p++];
        else a[i] = aux[q++];
    }
    
}

利用递归实现merge sort:

public void sort(int[] a,int[] aux,int lo,int hi){
    if(lo>=hi) return;
    int mid = lo+(hi-lo)/2;
    sort(a,aux,lo,mid);
    sort(a,aux,mid+1,hi);
    merge(a,aux,lo,mid,hi);
}

public void sort(int[] a){
    int aux = new int[a.length];
    sort(a,aux,0,a.length-1);
}
  • bottom up merge sort
    不用递归,从1开始merge,然后是2,会得到一堆长度为2并且排好序的subarrays,然后是4,得到一堆长度为4的排好序的subarrays……
    merge的代码和上面相同,不同的是sort的代码:
public void sort(int[] a){
    int N = a.length;
    for(int size = 1;size<N;size = size+size){
        for(int lo = 0;lo<N-size;lo=lo+size+size){
            merge(a,lo,lo+size-1;Math.min(lo+size+size-1,N-1));
        }
    }
}

相关文章

  • 排序算法-5--- 归并排序

    归并排序 Merge sort 1、概念 归并排序(英语:Merge sort,或mergesort),是创建在归...

  • 归并排序和快速排序

    1.归并排序(Merge Sort) 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算...

  • JavaScript的排序算法——归并排序

    归并排序(Merge Sort) 在计算机科学里,归并排序(Merge Sort)是一种通用有效的排序算法。通常情...

  • c算法O(n*log n)(二)

    归并排序Merge Sort 自顶向下进行排序 自底向上进行归并排序 快速排序

  • 归并排序

    来源:图解排序算法(四)之归并排序 - dreamcatcher-cx - 博客园 归并排序(MERGE-SORT...

  • 排序算法(2):归并排序

     归并排序:归并排序(英语:Merge sort,或mergesort),是创建在归并操作上的一种有效的排序算法,...

  • python归并排序--递归实现

    归并排序: 归并排序(英语:Merge sort,或mergesort),是创建在归并操作上的一种有效的排序算法,...

  • 排序算法之归并排序

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

  • 归并排序

    什么是归并排序? 归并排序(Merge sort,或mergesort),是创建在归并操作上的一种有效的排序算法,...

  • 05_归并排序

    def merge_sort(data): ''' 归并排序 :param lists: :ret...

网友评论

      本文标题:merge sort 归并排序

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