java二路归并排序示例分享
2023-06-13 09:15:18 时间
归并排序就是采用分治法进行排序:
(1)将一个数组分成小的2个数组分别进行排序;
(2)之后将分出来的已经拍好序的数组进行合并;
importjava.util.Scanner;
publicclassMergeSort{
int[]a=null;
int[]b=null;
intn;
Scannersin=null;
MergeSort()
{
a=newint[10000];
b=newint[10000];
sin=newScanner(System.in);
}
voidsort(intstart,intend) //排序a[start...end]
{
intmid;
if(start>=end) //只有一个元素的时候,直接返回
return;
else
{
mid=(end-start)/2; //将元素分成两半,分别排序
sort(start,start+mid);
sort(start+mid+1,end);
//归并两个有序的数组a[start...start+mid]和a[start+mid+1...end]
merge(start,start+mid,end);
}
}
voidmerge(intstart,intmid,intend) //归并
{
intt=start;
inti=start,j=mid+1;
while(i<=mid&&j<=end)
{
if(a[i]<a[j])
b[t++]=a[i++];
else
b[t++]=a[j++];
}
while(i<=mid)
b[t++]=a[i++];
while(j<=end)
b[t++]=a[j++];
for(i=start;i<=end;i++) //排序后的内容写回a数组的相应位置去
a[i]=b[i];
}
voidrun()
{
System.out.print("输入要排序的数的个数:");
n=sin.nextInt();
for(inti=0;i<n;i++)
a[i]=sin.nextInt();
sort(0,n-1);
System.out.println("排序结果是:");
//输入要排序的数据
for(inti=0;i<n;i++)
System.out.println(a[i]+" ");
}
publicstaticvoidmain(String[]args){
newMergeSort().run();
}
}
相关文章
- Java设置全局变量_java如何定义全局变量
- java sortedset用法_Java SortedSet headSet()用法及代码示例[通俗易懂]
- java mediatype utf-8_Java MediaType.APPLICATION_JSON_UTF8屬性代碼示例
- Contest1620 – 2020-2021-2学期《Java Web 系统开发》:java基础:字符串
- java scanner怎么用_Java中Scanner类的用法及使用步骤分享!「建议收藏」
- java backoff_Java BackOff类代码示例
- java代码大全及详解_史上最全JVM大全详解!java程序员细节到极致的一次,魔鬼…
- java 实现多态_Java多态的实现原理
- java常量有哪些_JAVA常量介绍「建议收藏」
- java高级工程师_一名Java高级工程师需要学什么?
- java struts2 漏洞_struts2漏洞列表
- MySQL字段类型如何转为java_Java JDBC中,MySQL字段类型到JAVA类型的转换
- java基本数据类型 think in java_Think in Java(一):Java基础[通俗易懂]
- ringbuffer java例子_Java RingBuffer.publish方法代碼示例「建议收藏」
- java url加密_Java实现url加密处理的方法示例
- JAVA实验室设备管理系统代码_java做一个简单学生管理系统
- JAVA静态内部类_java静态内部类实例化
- java 计算器 (模仿windows自带计算器的功能和界面)详解编程语言
- java选择排序算法详解编程语言
- Java Arrays类进行数组排序详解编程语言
- Java项目实战之BBS论坛系统开发(带源码和解析)
- 使用Java操作MySQL数据库快速精准查询(java查询mysql数据库)
- 更新LINUX下的Java版本(linux更新java)
- Linux上部署Java项目实践指南(linux部署java项目)
- Java高效操作MySQL数据库(java写入mysql)
- 时间Java如何优雅地处理Redis过期时间(redisjava过期)
- 使用Java轻松导出MySQL数据(java导出mysql)
- 使用Java远程控制Linux 实现简单、高效的服务器管理(java控制linux)
- 实现高并发:Java利用Redis秒杀成功(java秒杀redis)
- Java应用在Linux上乱码的原因及解决方法(java linux乱码)
- java中实现汉字按照拼音排序(示例代码)
- java对double数组排序示例分享
- java的arraylist排序示例(arraylist用法)