<script type="text/javascript">
var arr = [1, 2, 3, 54, 22, 1, 2, 3];
function quick(arr) {
if (arr.length <= 1)
return arr;
var proiindex = Math.floor(arr.length / 2);
var proift = arr.splice(proiindex, 1)[0]; //找基准,并把基准从原数组删除
var left = [];
var right = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] <= proift) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return quick(left).concat([proift], quick(right));
}
document.write(quick(arr));
</script>
相关文章
- Java中的数组排序
- C语言 快速排序——qsort函数详解
- 将数组排序所需的最小交换次数
- 快速排序算法C++代码
- 【C语言-利用合并排序算法对一个具有n个整数元素的数组进行排序】
- 快速排序基本思路(通俗易懂+例子)
- 零基础上手Python数据分析 (15):DataFrame 数据排序与排名 - 快速定位关键数据
- C语言之实现函数返回一个数组,以及选择排序,还有折半查找。这是同学的一个作业。。。
- 牛牛定义排序子序列为一个数组中一段连续的子序列,并且这段子序列是非递增或者非递减排序的。牛牛有 一个长度为n的整数数组A,他现在有一个任务是把数组A分为若干段排序子序列,牛牛想知道他最少可以把这个 数
- [Js]JavaScript闭包和范围的快速测试