排序算法之归并排序

1.归并排序

1.1 算法思想

将待排序序列中的前后相邻的的两个序列合并成一个有序序列

1.2 算法图解

 

1.3 代码与结果

public class MergeSort {

    public static void main(String[] args) {

        int a[]={49,38,65,97,76,13,27,49};
        Msort(a,0,a.length-1);

        for(int i=0;i<a.length;i++)
        {
            System.out.print(a[i]+" ");
        }
    }


    public static void Merge(int[] a,int low,int mid,int high)
    {
        int[] temp =new int[high-low+1];
        int p1 =low;
        int p2=mid+1;
        int i=0;
        while(p1<=mid&&p2<=high)
        {
            temp[i++]=a[p1]<a[p2]?a[p1++]:a[p2++];
        }
        while(p1<=mid)
        {
            temp[i++]=a[p1++];
        }
        while(p2<=high)
        {
            temp[i++]=a[p2++];
        }
        for(int j=0;j<temp.length;j++)
        {
            a[low+j]=temp[j];
        }
    }

    public static void Msort(int[] a,int low,int high)
    {
        if(low==high)
        {
            return;
        }
        int mid = (low+high)/2;
        Msort(a,low,mid);
        Msort(a,mid+1,high);
        Merge(a,low,mid,high);
    }
}
13 27 38 49 49 65 76 97 

1.4 总结

1.4.1 平均时间复杂度O(nlogn),空间复杂度O(n);

1.4.2 是稳定排序

【项目名称】:运用C++编程语言开发的视觉图像三维重构系统 【目标用户】:面向有意涉足跨技术领域学习的入门者及资深开发者。适合用作毕业设计课题、教学实践任务、大型作业、工业实训或初级科研项目启动。 【系统概述】: 本系统通过视觉图像数据实现三维物体的几何建模,其核心模块涵盖以下功能: - **基础架构**:集成工程所需的基础数据组织形式,涵盖影像资料、深度图谱、网格模型、视角参数等元素的存储与交互机制。 - **数学运算库**:包含矩阵操作、矢量计算、四元数变换等数学工具,支撑几何计算需求。 - **特征处理单元**:支持SIFT与SURF两类特征识别算法的提取与匹配操作。 - **运动结构复原模块**:实现摄像机位姿推算、三维空间点三角定位及光束法平差等关键技术。 - **多视角立体模块**:通过立体匹配算法生成高密度点云数据。 - **表面重建组件**:将离散点云转化为连续网格曲面。 - **纹理映射单元**:生成贴合模型表面的纹理贴图。 - **应用案例库**:提供典型应用场景的代码示范。 - **缓存目录**:用于暂存运算过程产生的临时文件。 系统以模块化架构确保各功能单元独立可拓展,适用于计算机视觉与图形学领域的算法研究及工程实践。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值