/**
* 快速排序
* @param li
* @param left
* @param right
*/
var quick_sort= function(li,left,right){
if(left < right){
var mid = partition(li,left,right)
quick_sort(li,left,mid - 1)
quick_sort(li,mid+1,right)
}
}
/**
* 在left到right区间遍历li,使li[left]元素归位
* @param li
* @param left
* @param right
* @returns {*}
*/
var partition = function(li,left,right){
var tmp = li[left]
while(left < right){
while(left<right && li[right]>=tmp){
right -=1 //向左移动
}
li[left] = li[right]
while(left < right && li[left]<=tmp){
left +=1 //向右移动
}
li[right] = li[left]
}
// tmp左边的值都比它小,tmp右边的值都比它大
li[left] = tmp
return left
}
学习资料:https://www.bilibili.com/video/BV1uA411N7c5?p=17










