排序算法--归并排序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
*/

猜你喜欢

转载自blog.csdn.net/xjliww123/article/details/12220979