热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

数据结构之排序算法归并排序java

代码如下:6归并排序publicvoidmerge(inta[],int[]b,intleft




代码如下:

///////////////6归并排序///////////////
  public void merge(int a[],int []b,int left,int mid,int right){
	  //归并方法: 把两个有序子序列合并成一个有序序列
	  //划分两个子序列,分别为a[left:mid]及 a[mid+1:right],归并到b数组b[left:right]
	  int p=left;//遍历左序列的游标
	  int r=mid+1;//遍历右序列的游标
	  int k=left;//归并结果序列的游标,当前归并元素在结果序列中的位置
	  
	  while(p<=mid&&r<=right){//归并两个子序列,直到其中一个子序列中所有元素都被归并完
		  if(a[p]mid){//表明左序列已经全部归并完,则把右序列剩下的元素依次放入结果序列中
		  for(int i=r;i<=right;i++){
			  b[k++]=a[i];
		  }
	  }else{
		  for(int i=p;i<=mid;i++){
			  b[k++]=a[i];
		  }
	  }
   }
  
    @Test//测试归并方法merge()
	public void mergetest(){
		int a[] = {60,40, 1,3,5,10,12,35, -1,0,2,3,4,8,20,24,36};
		int b[] = new int[a.length];
		merge(a,b,2,7,a.length-3);
		print(b);
	}
 

//调用merge()实现排普通序列---其实用快排做这功能更好,这里只是学习
	//把数组a[left:right]范围内的元素进行排序--采用归并
	public void mergeSort(int a[], int left, int right){
	  if(left 
 

推荐阅读
author-avatar
fanersai_668
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有