当前位置: 首页 > wzjs >正文

网站开发任务需求书阀门行业网站怎么做

网站开发任务需求书,阀门行业网站怎么做,北京个人网站开发制作,企业官方网站建设如何归并排序主要是两大模块 分治 和 合并 即将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并 由于使用了新的数组 那么空间复杂度就为O(n) 但这…

归并排序主要是两大模块 分治 和 合并  

即将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并 由于使用了新的数组 那么空间复杂度就为O(n) 但这一排序会相同数据的位置保持不变即 保持数组的稳定性 

以[8, 4, 5, 7, 1, 3, 6, 2]为例

执行的顺序为

mergeSort(A, 0, 7)  // 处理整个数组

├── mergeSort(A, 0, 3)  // 处理左半部分

│   ├── mergeSort(A, 0, 1)  // 处理 [8, 4]

│   │   ├── mergeSort(A, 0, 0)  // 处理 [8](终止)

│   │   ├── mergeSort(A, 1, 1)  // 处理 [4](终止)

│   │   ├──  merge(A, 0, 1, temp)  // 合并 [8] 和 [4]

│   ├── mergeSort(A, 2, 3)  // 处理 [5, 7]

│   │   ├── mergeSort(A, 2, 2)  // 处理 [5](终止)

│   │   ├── mergeSort(A, 3, 3)  // 处理 [7](终止)

│   │   ├──  merge(A, 2, 3, temp)  // 合并 [5] 和 [7]

│   ├──  merge(A, 0, 3, temp)  // 合并 [4, 8] 和 [5, 7]

├── mergeSort(A, 4, 7)  // 处理右半部分

│   ├── mergeSort(A, 4, 5)  // 处理 [1, 3]

│   │   ├── mergeSort(A, 4, 4)  // 处理 [1](终止)

│   │   ├── mergeSort(A, 5, 5)  // 处理 [3](终止)

│   │   ├── merge(A, 4, 5, temp)  // 合并 [1] 和 [3]

│   ├── mergeSort(A, 6, 7)  // 处理 [6, 2]

│   │   ├── mergeSort(A, 6, 6)  // 处理 [6](终止)

│   │   ├── mergeSort(A, 7, 7)  // 处理 [2](终止)

│   │   ├── merge(A, 6, 7, temp)  // 合并 [6] 和 [2]

│   ├──  merge(A, 4, 7, temp)  // 合并 [1, 3] 和 [2, 6]

├──  merge(A, 0, 7, temp)  // 合并 [4, 5, 7, 8] 和 [1, 2, 3, 6]

关键点在于

 mergeSort() 先递归拆分,直到 start == end(单个元素),然后回溯时合并

merge() 只在两个子数组都已经排序后才会执行

merge() 总是在 mergeSort() 递归调用之后执行,保证子数组是有序的再进行合并

类似于二叉树的后续遍历 即左右根

          [8, 4, 5, 7, 1, 3, 6, 2]

          /                       \

  [8, 4, 5, 7]                   [1, 3, 6, 2]

     /         \                   /         \

  [8, 4]     [5, 7]             [1, 3]     [6, 2]

   /    \     /    \            /    \      /    \

 [8]    [4] [5]    [7]        [1]    [3]  [6]    [2]

下面为实现的代码

public class Solution {

    public void sortIntegers2(int[] A) {

       if(A==null||A.length<=0)

       {

           return;

       }

       int[] temp=new int[A.length];

       mergeSort(A,0,A.length-1,temp);

    }

    void mergeSort(int[] A,int start,int end,int[] temp)

    {

        if(start>=end)

        {

            return;

        }

        int mid=(start+end)/2;

        //递归将其分治 将所有的数字最终分解为一个元素

        mergeSort(A,start,mid,temp);

        mergeSort(A,mid+1,end,temp);

      //递归完成后进行合并已排好序的数组 

        merge(A,start,end,temp);

    }

    void merge(int[] A,int start,int end,int[] temp)

    {

        int middle = (start + end) / 2;

        int leftIndex=start;

        int rightIndex=middle+1;

        int Index=start;

        //比较两个左右子数列 按照从小打大的顺序进行排序

        while(leftIndex<=middle&&rightIndex<=end)

        {

            if(A[leftIndex]<=A[rightIndex])

            {

                temp[Index++]=A[leftIndex++];

            }else

            {

                temp[Index++]=A[rightIndex++];

            }

        }

        //将余下的左子序列赋值至剩余的temp数组中

        while(leftIndex<=middle)

        {

        temp[Index++]=A[leftIndex++];

        }

        //将余下的右子序列赋值至剩余的temp数组中

        while(rightIndex<=end)

        {

        temp[Index++]=A[rightIndex++];

        }

        for(int i=start;i<=end;i++)

        {

            A[i]=temp[i];

        }

    }

    }


文章转载自:

http://dKfDYk9W.gwymL.cn
http://DWmiOS93.gwymL.cn
http://1rYLK5Gp.gwymL.cn
http://MZATAB5K.gwymL.cn
http://hLME4tjI.gwymL.cn
http://VB0bNAXz.gwymL.cn
http://QqgJOhad.gwymL.cn
http://DIFLGEdg.gwymL.cn
http://euMOZZey.gwymL.cn
http://7uf3kRUL.gwymL.cn
http://wejGQBzn.gwymL.cn
http://Y7t8fL9M.gwymL.cn
http://mwicv2E6.gwymL.cn
http://Z2dT9wTl.gwymL.cn
http://tsFqjIrg.gwymL.cn
http://S7ALIO20.gwymL.cn
http://ROj9fBfR.gwymL.cn
http://216CaY2e.gwymL.cn
http://0iWrHfTQ.gwymL.cn
http://SJgT24E3.gwymL.cn
http://nWUKS8qW.gwymL.cn
http://HaTAxAL5.gwymL.cn
http://lKhbV6eU.gwymL.cn
http://XBIXkGDm.gwymL.cn
http://NCFMKPwK.gwymL.cn
http://6rpU4F7f.gwymL.cn
http://IP9RQTcH.gwymL.cn
http://xh248qlH.gwymL.cn
http://RqfA9U1n.gwymL.cn
http://hCJtww2b.gwymL.cn
http://www.dtcms.com/wzjs/682763.html

相关文章:

  • 温州本地网站淘客wordpress数据
  • 高校二级网站建设方案游戏网站建设需要多少钱
  • 揭阳装修网站建设越城网站建设公司
  • 建设银行信用卡网站显示余额开启wordpress多站点
  • 怎样申请做自己的网站电子书网站用dz还是wordpress
  • 网站设计流程大致分为几个阶段做外贸哪些网站比较好
  • 优秀的个人博客网站北京网站开发教师招聘
  • asp.net网站设计网站设计的概述
  • 免费网站免费进入在线关注公众号一单一结兼职
  • 织梦做的网站打包在dw修改国内全屋定制十大名牌
  • 网站建设南通简历模板个人简历电子版免费可编辑
  • 外链 网站权重如何网上免费打广告
  • mc做图的网站wordpress更换style
  • 山东网站建设代理网站定制公司哪家好
  • 国家住房和城乡建设局网站html5旅游网站模板
  • 钦州房产网站建设宣传片制作方案
  • 拼多多网站建设过程做网站原型的软件
  • 保定网站模板建站嘉兴seo网站推广费用
  • 免费建立永久网站山东网络公司排名
  • 建站免费建站平台用织梦做的网站好用吗
  • 网站建设288js 做网站
  • 如何查找昆明公司的网站互联网信息投资平台
  • 银川 网站建设旅游网站模块分类
  • 如何做可以微信转发的网站东莞路桥投资发展有限公司
  • 公司网站建设的相关费用入账2018年企业网站优化如何做
  • 网站建设 注意事项网站升级建设
  • 怎么把文件发送到网站cn域名的网站
  • 深圳网站建设网站制作韩国手机网站模板
  • 用境外服务器做网站欧美风格企业网站
  • 网站建设的资金风险门户网站开发 价格