Comments (2)
function quickSort(arr) {
if (arr.length <= 1) return arr;
var pivotIndex = Math.floor(arr.length / 2),
pivot = arr.splice(pivotIndex, 1)[0];
var left = [],
right = [];
for (var i = 0; i < arr.length; i++) {
if (pivot > arr[i]) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return quickSort(left).concat([pivot], quickSort(right));
}
from front-end-interview.
方法二,优化递归
function quickSort1(array, left, right) {
// 最开始不输入left和right参数
var left = typeof left == "number" ? left : 0,
right = typeof right == "number" ? right : array.length - 1;
if (left < right) { //只要左指针不小于右指针就继续partition
var index = partition(array, left, right);
quickSort1(array, left, index - 1);
quickSort1(array, index + 1, right);
}
return array;
}
var partition = function (array, left, right) {
var pivot = array[Math.floor((right + left) / 2)];
while (left <= right) {
while (array[left] < pivot) {
left++;
}
while (array[right] > pivot) {
right--;
}
if (left <= right) {
[array[left], array[right]] = [array[right], array[left]];
left++;
right--;
}
}
return left;
};
from front-end-interview.
Related Issues (20)
- 讲一下vuex
- 二叉树后序遍历 HOT 1
- 合并区间 HOT 1
- 字符串数字相加
- 发布订阅模式 HOT 1
- Vue和React的区别是什么
- 实现Promise的all方法
- src和href区别
- 随机数(洗牌算法) HOT 1
- 事件的target/currentTarget的区别 HOT 1
- 实现trim功能
- 类似逆波兰表达式的算法题 HOT 1
- Vue中key的作用
- 十进制转二十六进制
- 找出位置连续的最长递增序列 HOT 1
- 二叉搜索树的第K大的值
- 输入URL到浏览器显示页面的过程
- HTTP1.0/1.1/2.0/3.0
- 已上岸鹅厂WXG
- 关于面试的建议
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from front-end-interview.