JS实现快速排序

来源:互联网 发布:2016真实挂机赚钱软件 编辑:程序博客网 时间:2024/06/08 11:56

为数组实现一个原型方法,使之实现对数组的快速排序


<script type="text/javascript"><!--快速排序-->Array.prototype.quickSort = function(){quickSortHelper(this, 0, this.length-1);function quickSortHelper(arr, start, end){if(start < end){//par为哨兵var par = partition(arr, start, end);//递归调用快排arguments.callee(arr, start, par-1 );arguments.callee(arr, par+1, end);}}function partition(arr, start, end){var pivot = arr[end];var i = start; for(var j=start; j<end; j++){if(arr[j] < pivot){swap(arr, i, j);i++;}}swap(arr, i, end);return i; }function swap(arr, a, b){var tmp = arr[a]; arr[a] = arr[b];arr[b] = tmp;}}var arr = [1, 10, 8, 9, 22, 35, 17, 21];arr.quickSort();for(var i=0; i<arr.length; i++){document.write(arr[i] +" ");}</script>

输出为:

1 8 9 10 17 21 22 35


原创粉丝点击