Nodejs Array Swap swap(indexA, indexB)

Here you can find the source of swap(indexA, indexB)

Method Source Code

export default function stringPermutation(string) {
  let permutations = []/*ww w  . j  a  va 2s. c  om*/
  function recursivePermutations(array, index) {
    if(index === array.length) {
      permutations.push(array.join(''))
      return
    }
    for (let i = index; i < array.length; i++) {
      let copy = array.slice(0)
      copy.swap(index, i)
      recursivePermutations(copy, index+1)
    }
    return
  }
  recursivePermutations(string.split(''), 0)
  return permutations
}

Array.prototype.swap = function (indexA, indexB) {
  let array = this
  if (indexA === indexB) {
    return array
  }
  let temp = array[indexA]
  array[indexA] = array[indexB]
  array[indexB] = temp
  let index = indexB
  while (index !== indexA + 1) {
    temp = array[index]
    array[index] = array[index-1]
    array[index-1] = temp
    index--
  }
  return array
}

Related

  1. swap(i, j)
    Array.prototype.swap = function (i, j) {
        var tmp = this[i];
        this[i] = this[j];
        this[j] = tmp;
    };
    
  2. swap(i,j)
    Array.prototype.swap = function(i,j){
      var a = this;
      if(i!=j){
        a[j]^=a[i];
        a[i]^=a[j];
        a[j]^=a[i];
    
  3. swap(idx1, idx2)
    function quickSort(arr){
        function partition(low, high){
            if(high - low < 2){
                return
            var pivot = arr[low]
            var wall = low
            for(var i = low; i <= high; i++){
                if(arr[i] < pivot){
    ...
    
  4. swap(index1, index2)
    Array.prototype.swap = function(index1, index2) {
        var temp = this[index1];
        this[index1] = this[index2];
        this[index2] = temp;
    };
    
  5. swap(index1, index2)
    Array.prototype.swap = function(index1, index2) { 
      let temp = this[index1]; 
      this[index1] = this[index2]; 
      this[index2] = temp 
    };
    
  6. swap(index_A, index_B)
    Array.prototype.swap = function(index_A, index_B) {
        var input = this;
        var temp = input[index_A];
        input[index_A] = input[index_B];
        input[index_B] = temp;
    
  7. swap(one, two)
    Array.prototype.swap = function (one, two) {
      var tmp = this[one];
      this[one] = this[two];
      this[two] = tmp;
    function randInt (low, high) {
      return Math.floor(Math.random() * (high - low + 1)) + low;
    function randChar () {
    ...
    
  8. swap(pos1, pos2)
    Array.prototype.swap = function(pos1, pos2) {
      var temp = this[pos1];
      this[pos1] = this[pos2];
      this[pos2] = temp;
    
  9. swap(sIdx, tIdx )
    ;"use strict";
    var log=function(msg){console.log(msg);};
    var alert=function(msg){log(msg);};
    var arr = [3,6,7,5,3,6,2,9,1,5,33,-12,0,-122,-Infinity, 125, 33, 55, 77];
    Array.prototype.swap = function (sIdx, tIdx ) {
      var tmp = this[sIdx];
      this[sIdx] = this[tIdx];
      this[tIdx] = tmp; 
    Array.prototype.quickSort = function () {
      function _quickSort(arr, leftIdx, rightIdx) {
        if(leftIdx < rightIdx) {
          var pivot = arr[leftIdx],
          chkLeftIdx = leftIdx,
          chkRightIdx = rightIdx;
          while(chkLeftIdx < chkRightIdx) {
            while(arr[chkRightIdx] > pivot) {
              chkRightIdx--;
            while(chkLeftIdx < chkRightIdx && arr[chkLeftIdx] <= pivot) {
              chkLeftIdx++;
            arr.swap(chkLeftIdx, chkRightIdx);
          arr.swap(leftIdx, chkLeftIdx);
          _quickSort(arr, leftIdx, chkLeftIdx-1);
          _quickSort(arr, chkLeftIdx+1, rightIdx);
        return arr;
      return _quickSort(this, 0, this.length -1);
    };
    console.log(arr.sort());
    console.log(arr.quickSort());