美文网首页
数据结构与算法-归并排序

数据结构与算法-归并排序

作者: 星空下奔跑 | 来源:发表于2018-03-31 22:48 被阅读0次

将两个或两个以上有序序列组合成一个新的有序表。

void MergeSort(Sqlist &L1,Sqlist &L2,Sqlist N){
    for(i=1,j=1,k=1;i<=L1.length&&j<=L2.lenght;k++){
        if(LT(L1.r[i],L2.[j])){
            N.r[k]=L1.[i++];
        }else{
            N.r[k]=L2.[j++];
        }
    }//for
    while(i<=L1.length){N.r[k++]=L1.r[i];}
    while(j<=L2.length){N.r[k++]=L2.r[j];}
}//MergeSort
    

Java实现:


 private void mergeSort(int[] a,int[] b){

        int lenA=a.length;
        int lebB=b.length;
        quickSort(a,0,lenA-1);
        quickSort(b,0,lebB-1);
        int[] c = new int[lebB + lenA];
        int ia=0,ib=0,ic=0;
       /* while (ic<lebB+lenA) {
            if (a[ia] < b[ib]) {
                c[ic] = a[ia];
                if (ia < lenA - 1)
                    ia++;
            } else {
                c[ic] = b[ib];
                if (ib < lebB - 1)
                    ib++;
            }
            ic++;
        }*/
       //youhua
        for (; ia < lenA && ib < lebB; ) {
            if (a[ia]<b[ib]) c[ic] = a[ia++];
            else c[ic]=b[ib++];
            ic++;
        }
        if (ia<lenA)
            for (int i = ia; i < lenA; i++) {
                c[ic]=a[i];
                ic++;
            };
        if (ib < lebB ) {
            for (int i = ib; i < lebB; i++) {
                c[ic]=b[i];
                ic++;
            }
        }

        println(c);
    }

相关文章

  • 排序算法-堆排序

    参考: Java排序算法(五):堆排序 【算法与数据结构】图说堆排序 【数据结构】排序算法:希尔、归并、快速、堆排...

  • 数据结构与算法--归并排序

    数据结构与算法--归并排序 归并排序 归并排序基于一种称为“归并”的简单操作。比如考试可能会分年级排名和班级排名,...

  • 算法与数据结构路线图

    学习算法与数据结构,深刻理解计算机科学 排序算法:插入、冒泡、选择、希尔、快速、归并、堆排序、计数排序、桶排序、基...

  • 一步一步学习数据结构和算法(二) O(nlogn) 的排序算法

    排序算法 文中使用的图片来自慕课网课程算法与数据结构 本章介绍的算法都是时间复杂度为 级别的算法. 归并排序 (...

  • 排序算法6:快速排序

    数据结构与算法 快速排序为应用最多的排序算法,因为快速二字而闻名。快速排序和归并排序一样,采用的都是分治思想。 分...

  • all

    算法与数据结构 常见算法类型 排序算法(冒泡、插入、选择、快排、希尔、堆排、归并、桶排、基数、计数)、字符串操作、...

  • 排序算法

    常考排序 快速排序 归并排序 归并排序求逆序数对 堆排序 堆排序是指利用堆这种数据结构所设计的一种排序算法。 堆积...

  • 2018-06-30

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

  • 算法笔记:快排算法与归并排序

    快排算法与归并算法时间复杂度都是O(nlogn)的排序算法。适合大规模的数据排序。思想利用的是分治思想。 归并排序...

  • 常见排序算法

    1 前言 2 排序基础2.1 选择排序2.2 插入排序 3 高级排序算法3.1 归并排序3.1.1 插入排序与归并...

网友评论

      本文标题:数据结构与算法-归并排序

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