美文网首页
排序算法

排序算法

作者: 富贵花开888 | 来源:发表于2022-07-29 16:10 被阅读0次

1、冒泡排序(最基础的排序)O(n^2)

        //冒泡排序核心点 俩个for循环嵌套 第一个趟数 相当于length-1 第二个每趟比较的时间是递减的

        //相邻的俩个相比 j和j+1相比

        function bubble(arr) {

            //遍历数组

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

                //判断对应的没有比较的值 没有确定位置的值

                for (var j = 0; j < arr.length - i; j++) {

                    //相邻的俩个进行比较

                    if (arr[j] > arr[j + 1]) {

                        //换位置

                        var temp = arr[j]

                        arr[j] = arr[j + 1]

                        arr[j + 1] = temp

                    }

                }

            }

            return arr

        }

        var arr = [10, 18, 58, 78, 48, 38]

        console.log(bubble(arr));

2、选择排序(选择最大值 或者最小值的下标 进行比较的排序)

        function selecter(arr) {

            //遍历数组

            for (var i = 0; i < arr.length; i++) {

                var min = i //记录最小下标 默认当前的i值

                for (var j = i + 1; j < arr.length; j++) { //遍历后面的内容

                    //如果当前值比最小值还小

                    if (arr[j] < arr[min]) {

                        //记录一下这个下标

                        min = j

                    }

                }

                //判断当前最小下标是否为开始的默认下标 不是就换位置

                if (min != i) {

                    //换位置

                    var temp = arr[min]

                    arr[min] = arr[i]

                    arr[i] = temp

                }

            }

            return arr

        }

        var arr = [18, 58, 68, 38, 78, 28, 8]

        console.log(selecter(arr));

3、快速排序(在数据量低于十万内最快的 在数据量不多的情况下最快的 是冒泡排序的进阶)二分O(nLogn)

        function quick(arr) {

            if (arr.length <= 1) {

                return arr

            }

            //定义左边的数组 右边的数组 基数

            var left = []

            var right = []

            var mif = arr[0]

            //遍历数组

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

                arr[i] > mid ? right.push(arr[i]) : left.push(arr[i])

            }

            return quick(left).concat([mid], quick[right])

        }

相关文章

  • java实现快速排序、归并排序、希尔排序、基数排序算法...

    快速排序算法 归并排序算法 希尔排序算法 基数排序算法

  • web开发需要知道的几个算法

    算法分类 快速排序算法 深度优先算法 广度优先算法 堆排序算法 归并排序算法

  • 算法学习(1)-排序算法

    八大排序算法九大排序算法再总结[经典排序算法][集锦][直观学习排序算法] 视觉直观感受若干常用排序算法 快速排序...

  • 经典排序算法总结

    经典排序算法集锦 冒泡法 排序算法入门之冒泡排序 排序算法入门之冒泡排序优化

  • 前端算法学习-第一篇

    冒泡排序算法 冒泡排序算法是最慢的排序算法之一,也是最容易实现的排序算法。之所以叫冒泡排序是因为使用这种算法排序时...

  • 七大排序算法之冒泡排序

    七大排序算法之冒泡排序 @(算法笔记)[排序算法, 冒泡排序, C++实现] 冒泡排序介绍 冒泡排序是七大排序算法...

  • 算法-选择排序

    算 法:选择排序算法时间复杂度: 选择排序算法概述 选择排序伪代码 选择排序实现 选择排序算法概述 排序算法有许...

  • 浅谈排序算法

    排序算法有很多种,今天先谈谈一些简单的排序算法。包括桶排序、冒泡排序和快速排序算法。后期总结各种排序算法。 桶排序...

  • 线性排序

    桶排序、计数排序、基数排序 一、线性排序算法介绍 1.线性排序算法包括桶排序、计数排序、基数排序。2.线性排序算法...

  • 算法4:插入排序和选择排序算法的比较

    排序算法列表电梯: 选择排序算法:详见 《算法4》2.1 - 选择排序算法(Selection Sort), Py...

网友评论

      本文标题:排序算法

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