资讯专栏INFORMATION COLUMN

js算法入门(1)--简单排序

Nosee / 1060人阅读

摘要:插入排序的过程就是将待插元素一个个插入初始有序部分的过程。而直接插入排序就是把未排序的序列里的第一位数与前面的有序数列进行比较,凡是比它大的都向后移动一位,直到找到正确的位置进行交换。

1.前言

从上大学开始,算法与数据结构这东西我是一直心心念念,奈何又懒又蠢,这么基础科目一直没啥成效。但是如鲠在喉,如果再不学的话可能就成为一块心病了。所以虽然和现在工作没啥关系但还是决定学一下基础,聊以自慰。

2.排序 2.1简单选择排序

对于一个有n个元素的数组a(下标从0开始),进行n趟操作,每趟从待排部分[i,n)中i选择i最小的元素,令其与a[i]进行交互,总复杂度为O(n^2):

    var a = [5, 2, 4, 6, 3, 1];
    //select sort
    function selectSort(a) {
        var n = a.length;
        for (var i = 0; i < n; i++) {//n次操作,即所谓的趟
            var k = i;//设最小值的下标为i
            console.log(i)
            for (var j = i + 1; j < n; j++) {//每趟待排序部分
                if (a[j] < a[k]) {//若求倒序则改为>
                    k = j;//更新最小值的下标
                }
            }
            //交换
            var temp = a[i];
            a[i] = a[k];
            a[k] = temp;
        }
        return a;
    }
    console.log(selectSort(a));
2.2简单插入排序

这里的插入排序指的是直接插入排序。插入排序的过程就是将待插元素一个个插入初始有序部分的过程。而直接插入排序就是把未排序的序列里的第一位数与前面的有序数列进行比较,凡是比它大的都向后移动一位,直到找到正确的位置进行交换。

function insertSort(a){
        var n=a.length;
        for(var i =1;i0&&temp

其实很像倒着来的冒泡排序

参考书目

《算法笔记》

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/93826.html

相关文章

  • Deep in JS - 收藏集 - 掘金

    摘要:今天同学去面试,做了两道面试题全部做错了,发过来给道典型的面试题前端掘金在界中,开发人员的需求量一直居高不下。 排序算法 -- JavaScript 标准参考教程(alpha) - 前端 - 掘金来自《JavaScript 标准参考教程(alpha)》,by 阮一峰 目录 冒泡排序 简介 算法实现 选择排序 简介 算法实现 ... 图例详解那道 setTimeout 与循环闭包的经典面...

    enali 评论0 收藏0
  • 算法小白——基本排序算法入门

    摘要:插入排序插入排序应该算是最简单和容易理解的排序算法。平均来说插入排序算法复杂度为。在最好的情况,冒泡排序需要次交换,而插入排序只要最多交换。因此很多现代的算法教科书避免使用冒泡排序,而用插入排序替换之。快速排序也是一种分治的递归算法。 计算的 时间复杂度(最差、平均、和最好性能),依据列表(list)的大小(n)。一般而言,好的性能是O(n log n),且坏的性能是O(n^2)。对于...

    littleGrow 评论0 收藏0
  • 前端资源系列(4)-前端学习资源分享&前端面试资源汇总

    摘要:特意对前端学习资源做一个汇总,方便自己学习查阅参考,和好友们共同进步。 特意对前端学习资源做一个汇总,方便自己学习查阅参考,和好友们共同进步。 本以为自己收藏的站点多,可以很快搞定,没想到一入汇总深似海。还有很多不足&遗漏的地方,欢迎补充。有错误的地方,还请斧正... 托管: welcome to git,欢迎交流,感谢star 有好友反应和斧正,会及时更新,平时业务工作时也会不定期更...

    princekin 评论0 收藏0
  • JS数据结构与算法_排序和搜索算法

    摘要:上一篇数据结构与算法树写在前面这是学习数据结构与算法的最后一篇博客,也是在面试中常常会被问到的一部分内容排序和搜索。 上一篇:JS数据结构与算法_树 写在前面 这是《学习JavaScript数据结构与算法》的最后一篇博客,也是在面试中常常会被问到的一部分内容:排序和搜索。在这篇博客之前,我每每看到排序头就是大的,心里想着类似冒泡排序,两层遍历啪啪啪就完事了,然后再也无心去深入研究排序相...

    姘搁『 评论0 收藏0
  • 前端学习资源

    摘要:提供了完整的环境,并且支持自定义域名指向,动态计算资源调整,可以完成各种应用的开发编译与部署。 react 新特性 react16 Context 算法相关 图解排序算法(二)之希尔排序 微信小程序 微信小程序组件化的解决方案移动端尺寸基本知识 浏览器 前端必读:浏览器内部工作原理浏览器缓存原理解读浏览器加载css和js及dom解析之间的关系浏览器缓存 CSS学习 移动web开发布局入...

    zhisheng 评论0 收藏0

发表评论

0条评论

Nosee

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<