JSFiddle - React, Tailwind, and code Playground

JavaScript

function  CArray(numElems) {
  	this.dataStore = [];
  	this.pos = 0;
  	this.numElems = numElems;
  	this.insert = insert;
  	this.toString = toString;
  	this.clear = clear;
  	this.setData = setData;
  	this.swap =swap;
    this.mergeSort =mergeSort;
    this.mergeArray =mergeArray;
  	for(var i = 0; i < numElems; ++i) {
  		this.dataStore[i] = i;
  	}
  }
  function  setData() {
  	for(var i = 0; i < this.numElems; ++i) {
  		this.dataStore[i] = Math.floor(Math.random() * 100);
  	}
  }
  function clear() {
  	for (var i = 0; i <  this.numElems; ++i) {
  		this.dataStore[i] = 0;
  	}
  }
  function insert(elem) {
  	this.dataStore[this.pos++] = elem;
  }
  function toString() {
  	var str = "";
  	for(var i = 0; i < this.dataStore.length; ++i) {
  		str += this.dataStore[i] + " ";
  		if( i > 0 && (i+1) %10 === 0) {
  			str += "\n";
  		}
  	}
  	return str;
  }
  function swap(arr,index1,index2) {
  	var temp = arr[index1];
  	arr[index1] = arr[index2];
  	arr[index2] = temp;
  }
  function mergeSort() {
    var arr = this.dataStore,
        length = arr.length;
    if(length < 2) {
      return;
    }
    var step = 1;
    var left = step;
    while(step < length) {
      left = 0;
      right = step;
      while(right + step <= length) {
        mergeArray(arr,left,left + step,right,right + step); 
        left = right + step;
        right = left + step;
      }
      if(right < length) {
        this.mergeArray(arr,left,left + step,right,length);
      }
     step *= 2;
    }
  }
  function mergeArray(arr,startLeft,stopLeft,startRight,stopRight) {
     var rightArr = new Array(stopRight - startRight + 1);  //创建临时存储数组
     var leftArr = new Array(stopLeft - startLeft + 1); //创建临时存储数组
     k = startRight;
     for(var i = 0; i < rightArr.length - 1; ++i) {
       rightArr[i] = arr[k]
       ++k;
     }
     k = startLeft;
     for(var i = 0; i < leftArr.length - 1; ++i) {
      leftArr[i] = arr[k];
      ++k;
     }
     rightArr[rightArr.length - 1] =...