题解 | #排序#
排序
https://www.nowcoder.com/practice/2baf799ea0594abd974d37139de27896
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 将给定数组排序 * @param arr int整型一维数组 待排序的数组 * @return int整型一维数组 */ public int[] MySort (int[] arr) { int tmp[]=new int [arr.length]; merge_sort(arr,0,arr.length-1,tmp); return arr; // write code here } void merge_sort(int q[],int l,int r,int tmp[]) { if(l>=r) return; int mid = l+r>>1; merge_sort(q,l,mid,tmp); merge_sort(q,mid+1,r,tmp); int k=0,i=l,j=mid+1; while (i<=mid&&j<=r) if(q[i]<=q[j]) tmp[k++]=q[i++]; else tmp[k++]=q[j++]; while (i<=mid )tmp[k++]=q[i++]; while (j<=r)tmp[k++]=q[j++]; for(i=l,j=0;i<=r;i++,j++){ q[i]=tmp[j]; } }//归并排序 }