2020-06-15 14:44发布
/**
题目:快速排序算法
原理: 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列
**/
var
quickSort =
function
(arr) {
if
(arr.length <= 1) {
//如果数组长度小于等于1无需判断直接返回即可
return
arr;
}
pivotIndex = Math.floor(arr.length / 2);
//取基准点
pivot = arr.splice(pivotIndex, 1)[0];
//取基准点的值,splice(index,1)函数可以返回数组中被删除的那个数
left = [];
//存放比基准点小的数组
right = [];
//存放比基准点大的数组
for
(
i = 0; i < arr>//遍历数组,进行判断分配
//遍历数组,进行判断分配
(arr[i] < pivot>
left.push(arr[i]);
//比基准点小的放在左边数组
else
{
right.push(arr[i]);
//比基准点大的放在右边数组
//递归执行以上操作,对左右两个数组进行操作,直到数组长度为<=1;
quickSort(left).concat([pivot], quickSort(right));
}; //使用的时候,直接调用quickSort()就行了。
最多设置5个标签!
/**
题目:快速排序算法
原理: 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列
**/
var
quickSort =
function
(arr) {
if
(arr.length <= 1) {
//如果数组长度小于等于1无需判断直接返回即可
return
arr;
}
var
pivotIndex = Math.floor(arr.length / 2);
//取基准点
var
pivot = arr.splice(pivotIndex, 1)[0];
//取基准点的值,splice(index,1)函数可以返回数组中被删除的那个数
var
left = [];
//存放比基准点小的数组
var
right = [];
//存放比基准点大的数组
for
(
var
i = 0; i < arr>
//遍历数组,进行判断分配
if
(arr[i] < pivot>
left.push(arr[i]);
//比基准点小的放在左边数组
}
else
{
right.push(arr[i]);
//比基准点大的放在右边数组
}
}
//递归执行以上操作,对左右两个数组进行操作,直到数组长度为<=1;
return
quickSort(left).concat([pivot], quickSort(right));
}; //使用的时候,直接调用quickSort()就行了。
一周热门 更多>