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

域名购买后 怎么创建网站小程序哪家开发最好

域名购买后 怎么创建网站,小程序哪家开发最好,wordpress图片错乱的问题,photoshop 做网站logo一、什么是归并排序 1、整体是递归,左边排好序右边排好序merge让整体有序 2、让其整体有序的过程里用了排外序方法 3、利用master公式来求解时间复杂度 4、当然可以用非递归实现 二、归并排序说明 1、首先有一个f函数 void f(arr, L, R) 说明:在arr上…

一、什么是归并排序

1、整体是递归,左边排好序+右边排好序+merge让整体有序
2、让其整体有序的过程里用了排外序方法
3、利用master公式来求解时间复杂度
4、当然可以用非递归实现

二、归并排序说明

1、首先有一个f函数
void f(arr, L, R)
说明:在arr上,从L到R范围上让它变成有序的

2、递归调用

(1)先f(L, M)之间有序
(2)f(M+1, R)之间有序
(3)变成整体有序

左边是2、3、5,右边是0,5,6
准备一个一样长的辅助空间,然后左指针指向2,右指针指向0,谁小拷贝谁
然后右边的指针往后移,再次比较2和5,谁小拷贝谁,以此类推

(4)整体有序后,再把这一块空间刷回去

三、代码

package class03;public class Code01_MergeSort {/*** 变成整体有序* @param arr* @param L 数组下标* @param M 数组下标* @param R 数组下标*/public static void merge(int[] arr, int L, int M, int R) {int [] help = new int[R - L + 1];int i = 0;int p1 = L;int p2 = M + 1;while (p1 <= M && p2 <= R) {help[i++] = arr[p1] <= arr[p2] ? arr[p1++] : arr[p2++];}//要么p1越界了,要么p2越界了//看左边小于等于Mwhile (p1 <= M) {help[i++] = arr[p1++];}//还是右边小于等于Rwhile (p2 <= R) {help[i++] = arr[p2++];}for (i = 0; i < help.length; i++) {arr[L + i] = help[i];}}/*** 递归方法实现* arr[L...R]范围上,变成有序* @param arr*/public static void mergeSort1(int[] arr) {if (arr == null || arr.length < 2) {return;}process(arr, 0, arr.length - 1);}public static void process(int[] arr, int L, int R) {if (L == R) { // base casereturn;}int mid = L + ((R - L) >> 1);process(arr, L, mid);process(arr, mid + 1, R);merge(arr, L, mid, R);}/*** 非递归方法实现* @param arr*/public static void mergeSort2(int[] arr) {if (arr == null || arr.length < 2) {return;}int N = arr.length;int mergeSize = 1;while (mergeSize < N) {int L = 0;while (L < N) {int M = L + mergeSize - 1;if (M >= N) {break;}int R = Math.min(M + mergeSize, N - 1);merge(arr, L, M, R);L = R + 1;}if (mergeSize > N / 2) { //防止溢出break;}mergeSize <<= 1; //左移后赋值,相当于乘2后赋值}}public static void main(String[] args) {int[] aaa = {99, 100, 50, 70, 88, 10, 9, 35, 1, 98};int[] bbb = {99, 100, 50, 70, 88, 10, 9, 35, 1, 98};mergeSort1(aaa);for (int i: aaa) {System.out.print(i + " ");}System.out.println();mergeSort2(bbb);for (int i: bbb) {System.out.print(i + " ");}System.out.println();}
}

(1)递归说明

(2)非递归说明

原理:
k=2
相邻两个数之间merge在一起
k=4
四个数一组,merge在一起
...
一直到k到达N或者超过N

回到代码,代码中mergeSize就是k,外层while循环
  N  10
  mergeSize  1
  L  0
  内层while循环
    M  0
    R  1
    merge(arr, 0, 0, 1)
    L  2
    
    M  2
    R  3
    merge(arr, 2, 2, 3)
    L  4
    
    M  4
    R  5
    merge(arr, 4, 4, 5)
    L  6
    
    ...

然后mergeSize变成2,变成4...

四、归并排序复杂度

T(N)=2*T(N/2)+O(N^1)
根据master可知时间复杂度为O(N*logN)
merge过程需要辅助数组,所以额外空间复杂度为O(N)
归并排序的实质是把比较行为变成了有序信息并传递,比O(N^2)的排序快

http://www.yayakq.cn/news/471663/

相关文章:

  • 山西大同专业网站建设价格陕西交通建设集团网站体检
  • 华城建设集团有限公司官方网站网站建设费 账务处理
  • 什么网站可以做ppt黑马前端学费多少
  • 阿勒泰建设局网站品牌策划案模板范文
  • 邵阳 做网站公司网络营销的特点主要包括什么
  • 网站服务器大小网站内页设计
  • 网站怎么做聚合页面高清效果图网站
  • 嘉兴企业网站开发零基础怎么自学动画制作
  • 电商平台设计电商网站建设苏州网站建设集团
  • 订货网站建设自己公司做网站
  • 徐水网站建设北京市网站建设企业
  • 手机网站制作建设建筑行业招聘网站排行榜
  • 免费做自我介绍网站深圳企业模板网站建设
  • 企业营销推广怎么做泰安网站seo
  • 邯郸市永年区做网站的公司一站式企业网站建设
  • wdcp 网站无法访问福州专业网站制作公司
  • 泰康人寿网站如何做计划领取网站开发个人感想
  • 做封面图什么网站暑假旅游最适合的城市
  • 定制网站的制作流程商城天气
  • 网站开发php jsp苏州网站建设专家
  • 网站数据分析视频做ui设计的软件
  • 工信部网站备案通知网站建设常见故障
  • 北京做网站费用郑州app开发公司定制外包
  • 兼职网站项目建设报告(完整版)wordpress 安装主题 无法调用图片和颜色
  • 永州网站建设网站山东又一地检测阳性
  • 代做广联达 的网站南阳网站建设aokuo
  • 达内网站开发公司网站建设需要什么
  • 网站 国外空间不需要icp许可证吗友情链接检查工具
  • 电子商务网站总体框架设计wordpress好的播放器
  • php网站开发 招聘python网站开发