public class play {
public static void main(String[] args) {
int[] arr = new int[]{1,7,8,5,2,4,};
splitSort(arr,0,arr.length-1);
System.out.println(Arrays.toString(arr));
}
public static void splitSort(int[] arr,int left,int right){
if (left == right){
return;
}
int mid = (left + right) /2;
splitSort(arr,left,mid);
splitSort(arr,mid+1,right);
merge(arr,left,right,mid);
}
public static void merge(int[] arr,int left, int right,int mid){
int[] temp = new int[right - left +1];
int s1 = left;
int s2 = mid+1;
int i = 0;
while (s1<=mid && s2 <=right){
if(arr[s1] <= arr[s2]){
temp[i] = arr[s1];
i++;
s1++;
}else {
temp[i] = arr[s2];
i++;
s2++;
}
}
while (s2 <=right){
temp[i] = arr[s2];
i++;
s2++;
}
while (s1 <= mid){
temp[i] = arr[s1];
i++;
s1++;
}
for (int j =0;j<temp.length;j++){
arr[j + left] = temp[j];
}
}
java归并排序
最新推荐文章于 2024-07-08 14:58:49 发布