1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| unction quickSort(array, l, r){ var len = array.length; var left = l || 0; var right = r || len - 1; if(left < right){ pivotIndex = partition(array, left, right); quickSort(array, left, pivotIndex - 1); quickSort(array, pivotIndex + 1, right); } return array; }
function partition(array, left, right){ const value = array[right] var pivotIndex = left; for(var i = left; i < right; i++){ if(array[i] < value){ swap(array, i, pivotIndex); pivotIndex++; } } swap(array, right, pivotIndex); return pivotIndex; }
function swap(array, i, j){ const temp = array[i] array[i] = array[j] array[j] = temp }
<<------------------------------------------------------->> function quickSort2(array){ var len = array.length if(len < 2){ return array; } var left = [], right = []; var value = array[0] for(var i = 1; i < len; i++){ if(array[i] < value){ left.push(array[i]) } else { right.push(array[i]) } } left = quickSort2(left); right = quickSort2(right); return left.concat([value], right) }
console.log(quickSort([21, 23, 3, 2, 34, 3, 45, 1, 0])) console.log(quickSort2([21, 23, 3, 2, 34, 3, 45, 1, 0]))
|