JS实现快速排序
2012-09-08 23:26
435 查看
为数组实现一个原型方法,使之实现对数组的快速排序
输出为:
1 8 9 10 17 21 22 35
<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
相关文章推荐
- JS实现随机化快速排序的实例代码
- JS实现快速排序
- js实现常见的三种排序方法(冒泡排序、快速排序、归并排序)
- 用JS实现冒泡排序、插入排序、选择排序、快速排序
- JS实现随机化快速排序的实例代码
- JS实现快速排序
- js实现快速排序
- JS实现快速排序
- 快速排序的js递归实现
- js实现快速排序
- JAVA排序算法实现代码-快速(Quick Sort)排序
- 快速排序非递归实现
- JS 实现表格列排序
- Java实现排序算法之快速排序
- 快速排序算法原理及实现(单轴快速排序、三向切分快速排序、双轴快速排序)
- STL sort 函数实现详解 作者:fengcc 原创作品 转载请注明出处 前几天阿里电话一面,被问到STL中sort函数的实现。以前没有仔细探究过,听人说是快速排序,于是回答说用快速排序实现的
- Java实现快速排序
- 快速排序实现
- 插入排序,合并排序,堆排序,快速排序,计数排序的实现(算法导论)
- 快速排序(三种算法实现和非递归实现)