`

排序--归并排序

 
阅读更多
    public static int[] merge(int[] A, int[] B)
    {
        int[] C = new int[A.length + B.length];
        int p1 = 0;
        int p2 = 0;
        int p3 = 0;
        while(p1 < A.length && p2 < B.length)
        {
            if(A[p1] <= B[p2])
            {
                C[p3] = A[p1];
                p1++;
                p3++;
            }
            else
            {
                C[p3] = B[p2];
                p2++;
                p3++;
            }
        }
        if(p1 == A.length)
        {
            for(int i = p2; i < B.length; i++)
            {
                C[p3] = B[i];
                p3++;
            }
        }
        if(p2 == B.length)
        {
            for(int i = p1; i < A.length; i++)
            {
                C[p3] = A[i];
                p3++;
            }
        }
        return C;
    }

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    归并排序,排序等算法,数据结构,快速排序,链表排序

    本主题将深入探讨四种常见的排序算法:归并排序、快速排序以及与链表相关的排序方法。 首先,我们来讨论归并排序(Merge Sort)。这是一种基于分治策略的排序算法。归并排序将大问题分解为小问题,然后逐步合并这些...

    排序-归并排序(Merge sort)

    归并排序(Merge Sort)是一种基于分治策略的高效排序算法,它的主要思想是将大问题分解成小问题,然后逐个解决小问题,最后再将解决好的小问题合并成解决大问题的答案。这种算法在计算机科学中有着广泛的应用,尤其...

    分治策略---归并排序

    ### 分治策略与归并排序 #### 一、分治策略概述 在计算机科学领域,分治(Divide and Conquer)是一种非常重要的算法设计思想。它的基本思想是将一个复杂的问题分解成两个或更多的相同或相似的子问题,直到最后子...

    最快的排序算法 谁才是最强的排序算法:快速排序-归并排序-堆排序,排序算法数据结构

    本文将对快速排序、归并排序、堆排序等常见排序算法进行比较和分析,探讨它们的优缺点和适用场景。 首先, let's 看一下这些排序算法的时间复杂度和空间复杂度: | 排序算法 | 平均情况 | 最好情况 | 最坏情况 | ...

    算法-理论基础- 排序- 归并排序(包含源程序).rar

    在提供的"算法-理论基础- 排序- 归并排序(包含源程序).pdf"文件中,可能会包含以下内容: 1. 归并排序的详细步骤解释,包括伪代码或流程图。 2. 归并排序的源代码实现,可能是C++、Java、Python或其他编程语言。 ...

    8.12-8.19-冒泡-选择-插入-希尔-快速-归并-基数-堆排序-排序算法Swift代码及UI演示

    6. 归并排序(Merge Sort):归并排序也是基于分治策略,将大数组分成两个小数组,分别排序后再合并。无论数据如何,归并排序的时间复杂度始终保持为O(n log n)。 7. 基数排序(Radix Sort):基数排序是一种非比较...

    排序-6-二路归并.cpp

    排序-6-二路归并.cpp

    Java代码-排序-直接插入排序、希尔排序、直接选择排序、冒泡排序、堆排序、快速排序、归并排序中部分排序以及算法-贪心法

    Java代码-排序-直接插入排序、希尔排序、直接选择排序、冒泡排序、堆排序、快速排序、归并排序中部分排序以及算法-贪心法,大家可以将源码下载下来进行学习,附带着注释和解释,有不理解的可以找博主一起探讨,共同...

    归并排序-flash演示

    归并排序-flash演 可自己输入数据..........

    MATLAB实现插入排序、二分归并排序、归并排序.rar

    在本资源中,我们主要关注的是使用MATLAB编程语言实现三种经典的排序算法:插入排序、二分归并排序以及归并排序。这些算法是计算机科学基础中的重要组成部分,特别是在算法设计与分析领域。MATLAB是一种强大的数值...

    15-归并排序.cpp

    15-归并排序.cpp

    归并排序-分治策略

    归并排序是一种高效的排序算法,基于“分治”策略。分治法是计算机科学中一种常用的解决问题的方法,它将一个复杂的问题分解成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,原问题的解即子...

    详解Java常用排序算法-归并排序

    Java常用排序算法-归并排序 归并排序是一种分治思想的排序算法,其基本思想是将待排序的数组分成若干个子序列,每个子序列都是有序的,然后再将子序列合并成一个有序的数组。这种算法的时间复杂度为O(n log n),...

    算法设计实验报告-快速排序和归并排序

    本实验旨在通过对两种经典排序算法——快速排序和归并排序的研究与实现,深入理解它们的基本原理、时间复杂度,并通过编程实践比较这两种算法在不同数据规模下的性能表现。 #### 二、快速排序 **1. 基本思想** ...

    算法的实现----归并排序

    算法的实现----归并排序 数据结构中学过的 编起耍哈哈

    归并排序-动态规划算法

    合并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(DivideandConquer)的一个非常典型的应用。合并排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序...合并排序也叫归并排序。

    归并排序 归并排序示例

    ### 归并排序详解 #### 一、归并排序简介 归并排序是一种采用分治策略的高效排序算法。其核心思想是将待排序数组分为若干子数组,这些子数组是已排序的,在合并这些子数组的过程中得到完全排序的数组。这种排序...

    VC++多线程实现三种排序算法比较----冒泡排序、快速排序、归并排序

    本篇文章主要探讨了如何在VC++环境中利用多线程技术来实现三种经典的排序算法:冒泡排序、快速排序和归并排序,并对它们的性能进行了比较。 首先,冒泡排序是一种简单的排序算法,它重复地遍历待排序的数列,一次...

Global site tag (gtag.js) - Google Analytics