算法的一些相关心得

这篇博客介绍了二分排序法的原理和两种实现方式。首先详细解释了基础的二分排序法,通过递归将数组按标杆进行划分。接着,展示了如何利用filter方法优化排序过程,提供了一个从大到小和从小到大排序的示例。通过这种方式,程序员可以更好地理解和应用二分排序算法来优化代码的效率和可读性。

算法

在计算机语言的世界,掌握语言的算法是很关键的事情,这是一种逻辑上解决问题的一个关键,如何使代码运行速度更快,如何使代码更好看是程序员应该考虑到的问题,以后我会把遇到的所有的算法题,以及一些算法贴在这篇博客上,作为一个记录。

1、二分排序法

 二分排序法.采用数组的第一个数作为标杆
    然后使用两个数组分别装比这个标杆大的数和比这个标杆小的数
    因为这个数组不可能只比较一次就可以
    我们也不知道会比较多少次
    所以呢我们对这两个数组进行递归比较
    这样这两个数组会一直把标杆排出去
    数组的个数就会越来越少知道数组的元素剩下只有一个
    我们就让比较过的数都串联起来。这就是二分排序法
 function quickSort(arr) {
            if (arr.length <= 1) return arr
            let povit = arr[0]
            let big = []
            let small = []

            for (let i = 1; i < arr.length; i++) {

                if (arr[i] >= povit) {
                    big.push(arr[i])
                } else {
                    small.push(arr[i])
                }
            }


     return quickSort(big).concat(povit, quickSort(small))
        }
        var arr = [5, 9, 8, 7, 2, 1, 41, 88]
        console.log(quickSort(arr));

1.2、二分排序法使用filter进行一个优化


 function quickSort(arr) {
            if (arr.length <= 1) return arr
            let povit = arr[0]
            let big = arr.slice(1).filter(item => item >= povit)
            let small = arr.slice(1).filter(item => item < povit)


            // 大到小
    // return quickSort(big).concat(povit,quickSort(small))
        
            //小到大
     return quickSort(small).concat(povit, quickSort(big))

        }
        var arr = [5, 9, 8, 7, 2, 1, 41, 88]
        console.log(quickSort(arr));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值