java常见排序算法——归并排序(附代码示列)

2025年01月13日 建站教程

//归
public void mergeSortDfs(int[] nums, int l, int r){
  if(l >= r){
      return;
  }
  int m = (l+r)/2;
  mergeSortDfs(nums, l, m);
  mergeSortDfs(nums, m+1, r);
  merge(nums, l, m, r);

}

//并
private void merge(int[] nums, int left, int mid, int right){
  int[] temp = new int[right-left+1];
  int l = left;
  int m = mid+1;
  int i = 0;
  while(l <= mid && m <= right){
    if(nums[l] < nums[m]){
      temp[i++] = nums[l++];
    } else {
      temp[i++] = nums[m++];
    }
  }
  while(l <= mid){
    temp[i++] = nums[l++];
  }
  while(m <= right){
    temp[i++] = nums[m++];
  }
  System.arraycopy(temp, 0, nums, left, temp.length);
}

本文链接:http://so.lmcjl.com/news/21267/

展开阅读全文
相关内容