js如何实现数组排序

实现思路:
1. 从数列中挑出一个元素,称为”基准”(pivot),
2.重新排序数列,所有比基准值小的元素摆放在基准前面,所有比基准值大的元素摆在基准后面(相同的数可以到任一边)。
在这个分区结束之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。
3.递归地(recursively)把小于基准值元素的子数列和大于基准值元素的子数列排序

<!DOCTYPE html>
<html>
<head>
	<title>qdabc.cn</title>
	<meta charset="utf-8">
</head>
<script type="text/javascript">
var quickSort = function(arr) {
    console.time('1.快速排序耗时');
  if (arr.length <= 1) { return arr; }
  var pivot = arr.splice(0, 1)[0];
  var left = [];
  var right = [];
  for (var i = 0; i < arr.length; i++){
    if (arr[i] < pivot) {
      left.push(arr[i]);
    } else {
      right.push(arr[i]);
    }
  }
console.timeEnd('2.快速排序耗时');
  return quickSort(left).concat([pivot], quickSort(right));
};
var arr=[3,44,38,5,47,15,36,26,27,2,46,4,19,50,48];
console.log(quickSort(arr));//[2, 3, 4, 5, 15, 19, 26, 27, 36, 38, 44, 46, 47, 48, 50]
</script>
<body>
</body>
</html>

欢迎分享本文,转载请保留出处:前端ABC » js如何实现数组排序

分享到:更多 ()

发表评论 0