美文网首页
封装一个快速排序方法

封装一个快速排序方法

作者: 楠楠_c811 | 来源:发表于2019-01-02 11:04 被阅读14次

来封装一个快速排序方法吧。

思路:

1.在数组中取一个中间值,将数组一分为二;
2.判断每个数,小于中间值的放左边,大于中间值的放右边;
3.将这几个数组连接输出。

大概思路就是这个,具体实现看代码吧,反正我的注释一向写的像作文,估计少有看不明白的。

          // 封装一个函数 传参arr 
        function mySort(arr){
            // 判断如果只有一位或者小于1
            if(arr.length <= 1){
                // 将当前数组返回
                return arr;
            }
            // 将数组一分为二向下取整并赋值
            let num = Math.floor(arr.length/2);
            // 将上一步获取到的数组的下标截取对应值重新赋值
            // splice可以将中间值不纳入比较范围
            let numValue = arr.splice(num,1);
            // 设置一左一右两个空数组
            let left = [];
            let right = [];
            // 循环数组
            for(let i = 0 ; i < arr.length ; i ++){
                // 判断如果小于中间值就放到left,否则放right
                if(arr[i] < numValue){
                    left.push(arr[i])
                }else{
                    right.push(arr[i])
                }
            }
            // 递归,并将left和中间值,以及right连接起来
            return mySort(left).concat(numValue,mySort(right))
        }
        // 定义数组
        let arr = [1,2,8,7,5,4,6,9,8]
        // 输出到页面显示
        document.write(mySort(arr))

相关文章

  • 数组的排序

    系统提供的排序方法,我觉得应该是快速排序方法的封装 OC swift 还有其他排序的方法,可参考文章:iOS 数组...

  • 封装一个快速排序方法

    来封装一个快速排序方法吧。 思路: 1.在数组中取一个中间值,将数组一分为二;2.判断每个数,小于中间值的放左边,...

  • 数组排序 冒泡排序 选择排序 插入排序 快速排序

    冒泡排序 选择排序 插入排序 快速排序 系统方法

  • Java实现数组排序(二)

    快速排序 java快速排序是采用递归的方法,在数组中选取第一个或者最后一个元素作为基元(最基本的快速排序,当然运...

  • 排序算法

    冒泡排序 选择排序 插入排序 归并排序 快速排序 数组内置方法

  • 封装自己的reduce、foreach、filter、sort、

    封装自己的forEach方法 封装自己的filter方法 封装自己的reduce sort排序分两层遍历。遍历到第...

  • 快速排序算法(OC实现)

    1.快速排序的意义:快速排序是一种优雅的排序算法,快速排序使用分而治之的策略。(一种递归式问题解决方法),快速排序...

  • 快速排序

    快速排序舞蹈 方法一

  • 快速排序

    描述 快速排序算是用得比较多的排序算法,很多库的排序方法都是用的快速排序,快速排序的平均时间复杂度为O(NlogN...

  • 实现几种常见排序方法

    Java实现几种常见排序方法 日常操作中常见的排序方法有:冒泡排序、快速排序、选择排序、插入排序、希尔排序,甚至还...

网友评论

      本文标题:封装一个快速排序方法

      本文链接:https://www.haomeiwen.com/subject/nmvolqtx.html