OneCompiler

QuickSort

136
  function QuickSort( unsortedArray ) {
	if (unsortedArray.length <= 1) {
	  return unsortedArray;
	}
	var lowerValues = [];
    var higherValues = [];
    
    var temp = [];
  
    var pivotKey = 0;
    var pivotValue = unsortedArray.pop();
    
    for (var i = 0; i < unsortedArray.length; i++) {
      if ((unsortedArray[i]) <= pivotValue) {
        lowerValues.push(parseFloat(unsortedArray[i]));
      } else if ((unsortedArray[i]) >= pivotValue) {
          higherValues.push(parseFloat(unsortedArray[i]));     
      }
    }
	
//	lowerValues = lowerValues.filter((item, idx) => lowerValues.indexOf(item) === idx);
//		higherValues = higherValues.filter((item, idx) => higherValues.indexOf(item) === idx);
	
    //temp[pivotKey] = pivotValue;
  	let tempArr = temp.concat(QuickSort(lowerValues), pivotValue, QuickSort(higherValues));
	
	return removeDup(tempArr);

  
    //return temp.concat(QuickSort(lowerValues), pivotValue, QuickSort(higherValues));
}

 function removeDup(arr) {
	return arr.filter((item, idx) => arr.indexOf((item)) === idx);
}

console.log(QuickSort([5,6,9,0,3,5,7,45,7,8,"23.5","45"]))