下面是使用Node.js编写的快速排序算法:
“`javascript
function quickSort(arr, left, right){
var len = arr.length,
pivot,
partitionIndex;
if(left < right){
pivot = right;
partitionIndex = partition(arr, pivot, left, right);
//sort left and right
quickSort(arr, left, partitionIndex – 1);
quickSort(arr, partitionIndex + 1, right);
}
return arr;
}
function partition(arr, pivot, left, right){
var pivotValue = arr[pivot],
partitionIndex = left;
for(var i = left; i < right; i++){
if(arr[i] < pivotValue){
swap(arr, i, partitionIndex);
partitionIndex++;
}
}
swap(arr, right, partitionIndex);
return partitionIndex;
}
function swap(arr, i, j){
var temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
// 调用方法如下:
var arrayToSort = [5, 3, 7, 6, 2, 9];
quickSort(arrayToSort, 0, arrayToSort.length – 1);
console.log(arrayToSort);
“`
该脚本首先定义了一个`quickSort`函数用于进行快速排序,然后定义了一个`partition`函数用于将数组划分为两个子数组,最后定义了一个`swap`函数用于交换数组中的元素位置。
暂无评论内容