![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b14a4bdb67b9dccd59d76f0742e49f4d.png)
var arr = [2, 8, 63, 85, 8, 52, 5, 5, 1];
function fastSort(arr) {
if (arr.length <= 1) { //拆完之后可能有空数组 和 数据长度为1的数组
return arr;
}
var mid = parseInt(arr.length / 2);
var left = [];
var right = [];
for (let i = 0; i < arr.length; i++) {
if (arr[i] < arr[mid]) { //2 最后的两个必须用mid拆开 不用mid就会死循环,拆不开
left.push(arr[i])
} else {
right.push(arr[i]);
}
//[2,1无法拆开] 进入死循环 所以需要用中间的 mid拆开
}
return fastSort(left).concat( fastSort(right));
}
console.log(fastSort(arr));
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/d598ffd76ff4e51182bffaeba46006a9.png)
var arr = [2, 8, 63, 85, 8, 52, 5, 5, 1];
function fastSort(arr) {
if (arr.length <= 1) { //拆完之后可能有空数组 和 数据长度为1的数组
return arr;
}
var mid = parseInt(arr.length / 2);
var left = [];
var right = [];
for (let i = 0; i < arr.length; i++) {
if (i != mid) {
if (arr[i] < arr[mid]) {
left.push(arr[i])
} else {
right.push(arr[i]);
}
}
}
return fastSort(left).concat(arr[mid], fastSort(right));
}
console.log(fastSort(arr));