java学习之—并归排序
/**
* 并归排序
* Create by Administrator
* 2018/6/26 0026
* 下午 5:13
**/
public class DArray { private long[] theArray; private int nElens; public DArray(int max){
theArray = new long[max];
nElens = 0;
} public void insert(long value){
theArray[nElens] = value;
nElens++;
} public void display(){
for (int i = 0; i < nElens; i++) {
System.out.print(theArray[i] + " ");
}
System.out.println("");
} public void mergeSort(){
long[] workSpace = new long[nElens];
recMergeSort(workSpace,0,nElens-1);
} private void recMergeSort(long[] workSpace, int lowerBound, int upperBound) {
if(lowerBound == upperBound){
return;
}else{
int mid = (lowerBound+upperBound) / 2;
recMergeSort(workSpace,lowerBound,mid);
recMergeSort(workSpace,mid+1,upperBound);
merge(workSpace,lowerBound,mid+1,upperBound);
}
} private void merge(long[] workSpace, int lowerBound1, int mid1, int upperBound) {
int i = 0;
int lowerBound = lowerBound1;
int mid = mid1-1;
int n = upperBound-lowerBound+1; while (lowerBound1 <= mid && mid1 <= upperBound){
if(theArray[lowerBound1] < theArray[mid1]){
workSpace[i++] = theArray[lowerBound1++];
}else{
workSpace[i++] = theArray[mid1++];
}
} while (lowerBound1 <= mid){
workSpace[i++] = theArray[lowerBound1++];
} while (mid1 <= upperBound){
workSpace[i++] = theArray[mid1++];
} for (i = 0; i< n; i++){
theArray[lowerBound+i] = workSpace[i];
}
} public static void main(String[] args) {
int maxSize = 100;
DArray array;
array = new DArray(maxSize); array.insert(64);
array.insert(21);
array.insert(65);
array.insert(1);
array.insert(44);
array.insert(20);
array.insert(8);
array.insert(15);
array.insert(90);
array.insert(76);
array.insert(45);
array.insert(55); array.display(); array.mergeSort(); array.display();
} }
java学习之—并归排序的更多相关文章
- [转]Java学习---7大经典的排序算法总结实现
[原文]https://www.toutiao.com/i6591634652274885128/ 常见排序算法总结与实现 本文使用Java实现这几种排序. 以下是对排序算法总体的介绍. 冒泡排序 比 ...
- Java学习笔记(一)
纯属个人学习笔记,有什么不足之处大家留言,谢谢 Java程序打包与JAR运行方法 在Eclipse的"包资源管理器"视图中找到要打包成JAR文件的项目.在项目名称上单击鼠标右键,在 ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- 关于JAVA学习计划和感想
学习计划第一阶段: JAVA语言基础知识.包括异常.IO流.多线程.集合类. 要求:异常------掌握try-catch-finally的使用 IO流------掌握字 ...
- 20145304 第五周Java学习报告
20145304<Java程序设计>第5周学习总结 教材学习内容总结 1.使用try.catch: 如果使用了try.catch,编译时会尝试执行try区块中的程序代码,如果有错误,执行流 ...
- 20145330第八周《Java学习笔记》
20145330第八周<Java学习笔记> 第十五章 通用API 通用API 日志:日志对信息安全意义重大,审计.取证.入侵检验等都会用到日志信息 日志API Logger:注意无法使用构 ...
- 20145330第五周《Java学习笔记》
20145330第五周<Java学习笔记> 这一周又是紧张的一周. 语法与继承架构 Java中所有错误都会打包为对象可以尝试try.catch代表错误的对象后做一些处理. 使用try.ca ...
- Java学习-046-日志抓取合并后排序问题解决方案之 --- log4j 二次定制,实现日志输出添加延时10ms
自3月25至今,已经好久没有写学习日志了,今天在写日志抓取合并的小方法,发现抓取后的日志并米有依据系统执行的日志顺序排序.日志抓取排列逻辑如下: 通过日志标识,从各个日志文件(例如 use.log,e ...
- java 学习之路
一.基础篇 1.1 JVM 1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收 http://www.jcp.org/en/jsr/detail?id=133 http://i ...
随机推荐
- 第二十六篇:USB3.0高带宽ISO(48KBytes/125us)实战
USB3.1技术已经推出, 10Gbps的速率足以满足数据, HD视频传输的要求. 要步入USB3.1的研发, 还得将USB3.0的基础打扎实. 微软提供的SUPER MUTT仅仅包括一个接口0, 其 ...
- 【适合N卡独显电脑的环境配置】Tensorflow教程-Windows 10下安装tensorflow 1.5.0 GPU with Anaconda
注意: 1.目前Anaconda 更新原命令activate tensorflow 改为 conda activate tensorflow 2. 目前windows with anaconda 可以 ...
- 003_生成器(generator)内部解析
#http://kb.cnblogs.com/page/87128/(未看完)
- zookeeper的原理,5分钟了解zookeeper
一 .Zookeeper功能简介 ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,是 Google Chubby 的开源实现.分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/ ...
- while和do-while语句的异同之处
while型语句: “先判断,后执行”: while 执行流程: 当程序执行到 while 循环时 , 会首先判断小括号里的值 ,如果值 为假 :结束while语句 , 程序继续向下走 为真 :会把 ...
- Java多线程(四)—— synchronized关键字续
1.synchronized原理 在java中,每一个对象有且仅有一个同步锁.这也意味着,同步锁是依赖于对象而存在.当我们调用某对象的synchronized方法时,就获取了该对象的同步锁.例如,sy ...
- 如何备份和恢复你的TFS服务器(一)
备份和恢复一个TFS(Team Foundation Server)服务器常常令人心生畏惧.因为这会涉及到很多服务和步骤.TFS(Team Foundation Server)2010一发布,我就知道 ...
- Jlink使用技巧之J-Scope虚拟示波器功能
J-Link简介 J-Link是SEGGER公司为支持仿真ARM内核芯片推出的JTAG仿真器.简单地说,是给一个JTAG协议转换盒.其连接到计算机用的是USB接口,而到目标板内部用的还是jtag协议. ...
- FineUI经典项目展示(1)生产在线管理系统
本系列<FineUI经典项目展示>文章将会集中展示一批使用FineUI(开源版).专业版.MVC版的经典项目. 如果你希望自己的FineUI项目出现在这个舞台,请到官网论坛提交申请: ht ...
- Java基础之数据比较Integer、Short、int、short
基础很重要,基础很重要,基础很重要.重要的事情说三遍,. 今天聊一聊Java的数据比较,这个范围比较大,基础类型的比较.引用类型的比较. 前提: 1.Java和c#都提供自动装箱和自动拆箱操作,何为自 ...