排序算法--归并排序Java实现 .

package sortAlgorithms;
/*
 * @author x@j
 * @date 2013-10-01
 * @content MergeSort
 * 归并排序(Merge sort)是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。
 * */
public class MergeSort<E extends Comparable<E>> extends Sort<E> {
	public static void main(String[] args) {
		MergeSort<Integer> is=new MergeSort<Integer>();
		Integer[] a={49,38,65,97,76,13,27,49};
		is.sort(a);
	}
	@Override
	public void sort(E[] a, int p, int q) {
		System.out.print("Merge sort初始序列为");
		        printArray(a);
				for(int i=p;i<q;i++){
					int position=i;
					for(int j=i+1;j<a.length;j++){
						if(a[j].compareTo(a[position])<0){
							position=j;
						}	
				    }
					swap(a,i,position);
					System.out.print("第 "+i+ "趟排序结果为");
					printArray(a);
			 }
	     }	
	}
/*
Merge sort初始序列为 49 38 65 97 76 13 27 49
第 0趟排序结果为 13 38 65 97 76 49 27 49
第 1趟排序结果为 13 27 65 97 76 49 38 49
第 2趟排序结果为 13 27 38 97 76 49 65 49
第 3趟排序结果为 13 27 38 49 76 97 65 49
第 4趟排序结果为 13 27 38 49 49 97 65 76
第 5趟排序结果为 13 27 38 49 49 65 97 76
第 6趟排序结果为 13 27 38 49 49 65 76 97
*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值