归并排序 JAVA
来源:互联网 发布:windows手动更新补丁 编辑:程序博客网 时间:2024/06/15 01:02
public class MergeSort{
public static void mergeSort(int [] list){
if(list.length>1){
int[] firstHalf=new int[list.length/2];
System.arraycopy(list,0,firstHalf,0,list.length/2);
mergeSort(firstHalf);
int secondHalfLength=list.length-list.length/2;
int[] secondHalf=new int[secondHalfLength];
System.arraycopy(list,list.length/2,secondHalf,0,secondHalfLength);
mergeSort(secondHalf);
int[]temp=merge(firstHalf,secondHalf);
System.arraycopy(temp,0,list,0,temp.length);
}
}
private static int[] merge(int[] list1,int[] list2){
int[] temp=new int[list1.length+list2.length];
int current1=0;
int current2=0;
int current3=0;
while(current1
if(list1[current1]
temp[current3++]=list1[current1++];
else
temp[current3++]=list2[current2++];
}
while(current1
temp[current3++]=list1[current1++];
while(current2
temp[current3++]=list2[current2++];
return temp;
}
public static void main(String[] args){
int[]list={2,3,2,5,6,1,-2,3,14,12};
mergeSort(list);
for(int i=0;i
System.out.print(list[i]+" ");
System.out.println();
}
}
public static void mergeSort(int [] list){
if(list.length>1){
int[] firstHalf=new int[list.length/2];
System.arraycopy(list,0,firstHalf,0,list.length/2);
mergeSort(firstHalf);
int secondHalfLength=list.length-list.length/2;
int[] secondHalf=new int[secondHalfLength];
System.arraycopy(list,list.length/2,secondHalf,0,secondHalfLength);
mergeSort(secondHalf);
int[]temp=merge(firstHalf,secondHalf);
System.arraycopy(temp,0,list,0,temp.length);
}
}
private static int[] merge(int[] list1,int[] list2){
int[] temp=new int[list1.length+list2.length];
int current1=0;
int current2=0;
int current3=0;
while(current1
if(list1[current1]
temp[current3++]=list1[current1++];
else
temp[current3++]=list2[current2++];
}
while(current1
temp[current3++]=list1[current1++];
while(current2
temp[current3++]=list2[current2++];
return temp;
}
public static void main(String[] args){
int[]list={2,3,2,5,6,1,-2,3,14,12};
mergeSort(list);
for(int i=0;i
System.out.print(list[i]+" ");
System.out.println();
}
}
0 0
- java排序--归并排序
- 排序-归并排序-Java
- 归并排序Java实现
- java归并排序算法
- JAVA归并排序算法
- java归并排序
- java归并排序
- Java实现归并排序
- 归并排序(java)
- 25、JAVA归并排序
- java 归并排序
- java归并排序
- Java归并排序
- 归并排序 java
- Java实现归并排序
- 归并排序Java实现
- java 归并排序
- Java归并排序
- 数码相机或智能手机的SD卡数据格式化后如何恢复
- IOS 学习笔记16 UIViewControl生命周期
- edgtfrhn
- tnsnames.ora一些说明,以及不装客户端访问oracle配置
- CocoStudio中层容器的锚点问题
- 归并排序 JAVA
- 关于struts2和ext国际化的总结
- Hibernate中Session之get和load方法的真正区别
- 【iOS】iOS之与iTunes文件共享,在程序中获得Document路径
- Android 截屏
- JDBC连接MySql实例
- Maven详解之聚合与继承
- HDU 4286 Data Handler (双向链表)
- 绕过Dalvik验证技术分析