1. 程式人生 > >歸併排序的java實現

歸併排序的java實現

package 小米oj;

public class 歸併排序 {
	
	
public static void main(String[] args) {
	
	int a[]= {1,2,2,35,22,55,100,2,1000};
	use(a);
	for(int i = 0;i<a.length;i++)
	{
		System.out.println(a[i]);
	}
	
	
}

public static void use(int a[])
{
	merge(a,0,(a.length-1)/2,a.length-1);
}
public static void mergesort
(int a[],int start,int mid,int end) { int temp[] = new int[end-start+2]; int p=0; int i=start,j=mid+1; while(i<=mid&&j<=end) { if(a[i]<=a[j]) { temp[p++] = a[i++]; } else { temp[p++] = a[j++]; }} while(i<=mid) { temp[p++] = a[i++]; } while(j<=end) { temp[
p++] =a[j++]; } p=0; for(int pp=start;pp<=end;pp++) { a[pp] = temp[p++]; } } public static void merge(int a[],int start,int mid,int end) { if(start+1!=end) {if(start!=end) { merge(a,start,(start+mid)/2,mid); merge(a,(mid+1),(mid+1+end)/2,end);} } mergesort(a,start,mid,end); } }