算法之快速排序(nodejs)

本文介绍了一种快速排序算法的具体实现过程,包括关键的分区函数和递归调用的Sort函数。通过实例演示了如何对一个整数数组进行排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

class QuickSort{



    swap(a,left,right){
        let tmp;
        tmp = a[left];
        a[left] = a[right];
        a[right] = tmp;
    }

    partition(a ,left ,right){
        let self = this;
        let pivotKey = a[left];
        let pivotPoint = left ;

        while (left <right){
            while(left<right&&a[right]>pivotKey){ //先从右边开始 当小于a[left] 就停止
                right--;
            }
            while(left<right&&a[left]<=pivotKey){ //右边停止后 ,左边开始, 当大于a[left] 就停止
                left++;  
            }
            self.swap(a,left,right) //把大的交换到右边,把小的交换到左边

            }

            self.swap(a,pivotPoint,left) //最后把piovt到中间
            console.log(a)
            return left

    }

    Sort(a,left,right){

        let self = this;
        if (left>=right){ //跳出递归

            return
        }

        const pivotPos = self.partition(a,left,right)

        self.Sort(a,left,pivotPos-1)
        self.Sort(a,pivotPos+1,right)


    }

}

module.exports = QuickSort;
const QuickSort = require("./quickSort");

let a =[34,5,25,7,54,23,56,75,32,344,53,2]
let left = 0;

let right = a.length-1;

const quick = new QuickSort();

quick.Sort(a,left,right)

result

quickSort node test.js
[ 32, 5, 25, 7, 2, 23, 34, 75, 56, 344, 53, 54 ]
[ 23, 5, 25, 7, 2, 32, 34, 75, 56, 344, 53, 54 ]
[ 7, 5, 2, 23, 25, 32, 34, 75, 56, 344, 53, 54 ]
[ 2, 5, 7, 23, 25, 32, 34, 75, 56, 344, 53, 54 ]
[ 2, 5, 7, 23, 25, 32, 34, 75, 56, 344, 53, 54 ]
[ 2, 5, 7, 23, 25, 32, 34, 53, 56, 54, 75, 344 ]
[ 2, 5, 7, 23, 25, 32, 34, 53, 56, 54, 75, 344 ]
[ 2, 5, 7, 23, 25, 32, 34, 53, 54, 56, 75, 344 ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值