⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mergesor.java

📁 java sort
💻 JAVA
字号:
/*
 * MergeSortAlgorithm.java
 * Patrick Morin takes no responsibility for anything. So there.
 *
 */

/**
 * A MergeSort demonstration algorithm
 * MergeSortAlgorithm.java
 *
 * @author Patrick Morin
 */

class MergeSortAlgorithm extends SortAlgorithm {

  void sort(int a[], int lo, int hi) throws Exception {
    // Base case
    if(lo == hi) {
      return;
    }

    // Recurse
    int length = hi-lo+1;
    int pivot = (lo+hi) / 2;
    sort(a, lo, pivot);
    sort(a, pivot+1, hi);

    // Merge
    int working[] = new int[length];
    for(int i = 0; i < length; i++)
      working[i] = a[lo+i];
    int m1 = 0;
    int m2 = pivot-lo+1;
    for(int i = 0; i < length; i++) {
      if(m2 <= hi-lo) {
	if(m1 <= pivot-lo) {
	  if(working[m1] > working[m2]) {
	    a[i+lo] = working[m2++];
	  }
	  else {
	    a[i+lo] = working[m1++];
	  }
	}
	else {
	  a[i+lo] = working[m2++];
	}
      }
      else {
	a[i+lo] = working[m1++];
      }
      pause();
    }
  }

  void sort(int a[]) throws Exception {
    sort(a, 0, a.length-1);
  }
}






⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -