/*

* 归并排序算法

*/

public class MergeSort {

final static int MAX=0x7FFFFFFF;

public static void main(String[] args) {

int []a = {5,4,8,7,1,3,2,6,12,13,19,25,45,17};

mergeSort(a,0,a.length-1);

System.out.print("排序后数组:");

for(int i:a) {

System.out.print(i+" ");

}

}

private static void mergeSort(int[] a, int p, int r) {

if(p < r) {

int q = (p+r)/2;

mergeSort(a,p,q);

mergeSort(a,q+1,r);

mergeIn(a,p,q,r);

}

}

private static void mergeIn(int[] a, int p, int q, int r) {

int n1=q-p+1;

int n2=r-q;

int[] L = new int[n1+1];

int[] R = new int[n2+1];

for(int i=0;i

L[i]=a[p+i];

}

for(int i=0;i

R[i]=a[q+i+1];

}

L[n1] = MAX;

R[n2] = MAX;

int i=0,j=0;

for(int k=p; k<=r; k++) {

if(L[i]<=R[j]) {

a[k]=L[i];

i++;

}

else {

a[k] = R[j];

j++;

}

}

}

}

运行结果为:

1 2 3 4 5 6 7 8 12 13 17 19 25 45

归并排序的java语言_归并排序 java语言相关推荐

  1. aes算法实现c语言_以C语言实现归并排序为例,谈谈五大常用算法之一的“分治法”...

    分治算法,顾名思义就是"分而治之",即把规模较大的复杂问题拆分为若干规模较小的类似子问题,并逐个解决,最后再将各个子问题的解决结果合并,得到原始问题的结果的方法.这个技巧是很多高效 ...

  2. java动态语言_探秘Java 7:JVM动态语言支持详解

    JDK 7 增加了对 JSR 292 的支持,在 JVM 中动态类型语言的运行速度将变得更快.这一支持的关键在于增加了新的 Java 字节码,invokedynamic,它用于方法调用,还有新的连接机 ...

  3. 易语言 java支持_开源Java客户端可以连接易语言服务器

    我们的服务端处理客户端的连接请求是同步进行的, 每次接收到来自客户端的连接请求后, 都要先跟当前的客户端通信完之后才能再处理下一个连接请求. 这在并发比较多的情况下会严重影响程序的性能, 为此,我们可 ...

  4. java安装_使用Java 9模块化来发布零依赖本机应用程序

    java安装 为什么我不能仅构建一个.EXE? 首次引入Java时,主流编程语言大多要么编译成独立的可执行文件(例如C / C ++,COBOL),要么在解释器中运行(例如Perl,Tcl). 对于许 ...

  5. MySQL和java连连看_用 JAVA 开发游戏连连看(之一)动手前的准备

    JAVA ,相信大家也不会陌生了吧, JAVA 是一门相当优秀的语言.目前 JAVA 领域 J2EE . JSP . STRUTS 等技术不知有多么的热门,他们的主要用途是用来进行企业开发, J2ME ...

  6. python能解密java的_实现Java加密,Python解密的RSA非对称加密算法功能

    摘要 因为最近业务需要使用到openssl的rsa非对称加密算法,研究了下它的使用方式,但是特殊在于前端分IOS和android两端,所以前端部门要求使用java给他们做一个加密工具包,但是因为服务端 ...

  7. java书籍_学习Java最好的10本书,从入门到精通

    在当代,学习Java等编程课程的主要方式是视频资源,如果你想学,在网上五分钟之内就可以找到一堆学习视频,瞬间将你的硬盘填满.但是这些课程质量良莠不齐,对于小白来说很难辨别好坏. 但是书籍不同,书籍都是 ...

  8. 成都两年JAVA工程师_成都Java工程师学习路线

    成都Java工程师学习路线.java分成J2ME(移动应用开发),J2SE(桌面应用开发),J2EE(Web企业级应用),所以java并不是单机版的,只是面向对象语言.建议如果学习java体系的话可以 ...

  9. java掌握_掌握Java 11的Constantdynamic

    java掌握 为了使JVM对动态语言更具吸引力,该平台的第七版已将invokedynamic引入了其指令集. Java开发人员通常不会注意到此功能,因为该功能已隐藏在Java字节码中. 简而言之,通过 ...

  10. java常见_关于Java的常见误解

    java常见 Java是世界上使用最广泛的语言(需要引用),每个人对此都有自己的见解. 由于它是主流,所以通常会嘲笑它,有时是对的,但有时批评并没有触及现实. 我将尝试解释我最喜欢的5个关于Java的 ...

最新文章

  1. 创建Cocos2d-x 3.x项目以及项目结构简要说明
  2. js date 加一天_你不一定了解的js数据类型
  3. mac qt android开发环境搭建,Mac 下 PyQt5 的开发环境搭建
  4. cad文字提取到excel_干货!南方CASS设计土石方方格网点上提取高程方法
  5. 在Hue中创建一个Oozie工作流
  6. Windows2003+SQL2000的集群安装手册
  7. Haar特征与积分图—概念解析
  8. ES6函数相关包含箭头函数
  9. mysql主从最大保护_MySQL主从复制(Master-Slave)实践
  10. windows7中文企业版安装英文语言包
  11. MQ消息队列的12点核心原理总结
  12. windows10打开excel显示灰色的解决方案
  13. 线性回归--公式推导
  14. cad 工程师绘图技巧 (一)
  15. Git的稀疏检出功能
  16. Could not find parameter map com.itcast.mapper.userinfMapper.map
  17. ES6看这一篇就够了
  18. Verilog HDL语言入门(二)
  19. vue js 语音播报 语音读文字 window.speechSynthesis new SpeechSynthesisUtterance (补充无声音 问题解决办法)
  20. Ubuntu下的连点器

热门文章

  1. OSError: [Errno 22] Invalid argument: ‘\u202aC:\\Windows\\Fonts\\方正粗黑宋简体.ttf‘解决方案
  2. node下使用jquery
  3. 敏捷开发团队管理系列之二:程序与测试团队I
  4. Beta阶段第2周/共2周 Scrum立会报告+燃尽图 10
  5. DB2开发系列之一——基本语法
  6. 读书笔记《Java开发技术-在架构中体验设计模式和架构之美》
  7. Generate a Simulator Build command
  8. [神奇的问题啊,GetProcAddress一个不存在的API时,返回非空值,且指向另一个API]谜团解开,错不在GetProcAddress...
  9. SQOOP 导出SQL SERVER中数据
  10. 【图像匹配】【词袋算法】词袋算法应用图像匹配