JSFiddle - React, Tailwind, and code Playground

JavaScript

var threeSort = function(A,i,j) {

	var diff = j-i;

	if (diff <= 2) {
  	if (A[j] < A[i]) {
    	var tmp = A[i];
      A[i] = A[j];
      A[j] = tmp;
      return;
    }
  }
  
  var x = Math.floor(diff/3);
  
  threeSort(A,i,x*2);
  threeSort(A,x+1,j);
  threeSort(A,i,x*2);
};

var arr = [3,4,1,4,2];
threeSort(arr, 0, arr.length-1);