数组归并排序

来源:互联网 发布:扬州网络电视台节目单 编辑:程序博客网 时间:2024/06/05 14:32
package com.Tecent.success.sg;import java.util.Scanner;/** * 归并排序数组版 * @author Dell * */public class GuiBing {public static void MergeSort(int[] a, int start,int end){if(start<end){ int mid=(start+end)/2; MergeSort(a,start,mid); MergeSort(a,mid+1,end); merge(a,start,mid,end);}}public static void merge(int[]a, int start ,int mid ,int end){int p=start;int q=mid+1;int[] temp=new int[a.length];int k=start;while(p<=mid&&q<=end){if(a[p]<a[q]){temp[k++]=a[p++];}else{temp[k++]=a[q++];}}if(p<=mid){for(int i=p;i<=mid;i++){temp[k++]=a[i];}}if(q<=end){for(int i=q;i<=end;i++){temp[k++]=a[i];}}for(int i=start;i<=end;i++){a[i]=temp[i];}}public static void main(String[] args) {  Scanner sc=new Scanner(System.in);  int n=sc.nextInt();  int[] a=new int[n];  for(int i=0;i<n;i++)  {  a[i]=sc.nextInt();  }  MergeSort(a,0,a.length-1);     for(int i=0;i<a.length;i++)     {     System.out.print(a[i]+" ");     }}}

原创粉丝点击