Skip to content

Instantly share code, notes, and snippets.

@ycmjason
Last active September 11, 2016 23:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ycmjason/193c731648ddb72197e371b4db01319a to your computer and use it in GitHub Desktop.
Save ycmjason/193c731648ddb72197e371b4db01319a to your computer and use it in GitHub Desktop.
Swap, insertBefore and insertAfter
var swap = function(arr, i, j){
var temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
return arr;
};
var insertBefore = function(arr, i, j){
if(i == j || i == j - 1) return arr;
else if(i < j) return insertBefore(swap(arr, i, i+1), i+1, j);
else if(i > j) return insertBefore(swap(arr, i, i-1), i-1, j);
};
var insertAfter = function(arr, i, j){
if(i == j || i == j + 1) return arr;
else if(i < j) return insertAfter(swap(arr, i, i+1), i+1, j);
else if(i > j) return insertAfter(swap(arr, i, i-1), i-1, j);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment