一、快速排序
思想:选取中间的值作为基准值,大于他的在左边,小于他的在右边,不断的重复下去。
实现步骤:
1、先取一个基准值quovt
2、定义两个数组,用来放基准值左边的数组和右边的数组
3、递归下去
var quickSort = function(arr) { if (arr.length <= 1) { return arr; } var pivotIndex = Math.floor(arr.length / 2); var pivot = arr.splice(pivotIndex, 1)[0];//把基准元素从原来的数组中扣出来,这个方法用得好 var left = []; var right = []; for (var i = 0; i < arr.length; i++) { if (arr[i] < pivot) { left.push(arr[i]); } else if (arr[i] > pivot) { right.push(arr[i]); } } return quickSort(left).concat([pivot], quickSort(right)); };
参考资料:http://www.ruanyifeng.com/blog/2011/04/quicksort_in_javascript.html
二、归并排序
思想:将两个顺序序列合并成一个顺序序列的方法
代码: