js排序算法基础--快速排序
摘要:快速排序 快速排序也是最常用的排序算法,和归并算法一样,快速排序也采用分治的方法,将原始数组分为较小的数组。(但是并没有像归并排序那样将它们分开) 思路: 1.从数组中选择中间一项作为主元; 2.创建两个指针,左边一个指向数组的第一项,右边指向数组最后一项。移动左指针直到我们找到一个比主元大的元素,
阅读全文
js排序算法基础--归并排序
摘要:归并排序 归并排序是可以被实际使用的排序算法,其复杂度为O(nlogn)。 思路:归并排序是一种分治算法。其思想是将原始数组切分为较小的数组,知道每个小数组只有一个位置。接着将小数组归并为较大的数组,直到最后只有一个排序完毕的大数组。 由于是分治法,归并排序也是递归的;我们首先定义一个实际被执行的辅
阅读全文
js排序算法基础--插入排序
摘要:插入排序 插入排序每次排一个数组项,以此方法构建最后的排序数组 思路:从数组的第二项开始,以此与前一项进行比较,如果比前一项大,则正确排序,如果没有,则交换位置继续与前一位比较,至排序正确。 排序小型数组时,此算法比选择排序和冒泡排序的性能好;
阅读全文
js排序算法基础--选择排序
摘要:选择排序 选择排序是一种原址比较排序算法。该算法与冒泡排序复杂度一样都包含两个循环,复杂度为O(n2); 思路:找到数据结构中的最小值放到第一位,然后找到第二小的放到第二位。 外循环迭代数组,并控制迭代轮数。内循环对每一项进行排序,当内循环结束,将得出数组第n小的值。 所以每进行一次内循环,就会有一
阅读全文
js排序算法基础--冒泡排序
摘要:冒泡排序 冒泡排序就是比较任何两个相邻的项,如果第一个比第二个大,则交换它们。元素项向上移动至正确的顺序,就好像气泡上升至表面一样,冒泡排序因此得名。 冒泡排序实现: 我们可以看到外层的循环主要是控制了数组中经过了多少轮循环(数组中的,每一项都经过一轮,轮数和数组的长度是一致的)。然后内循环将从第一
阅读全文
javascript中使用函数的闭包做运算缓存
摘要:定义一个cached函数作为存储变量的中间体: 在cached函数中,定义了一个cache的内部变量,该变量只能在其内部,或者其子函数内部被访问。 然后定义一个驼峰转连接符的方法: 在我们调用 hyphenate 方法的时候,会首先在其cache对象中查找是否有缓存的值,如果有直接返回,如果没有则执
阅读全文
Scss 与 Sass 入门学习小记 (二) 【scss的数据类型以及内置函数】
摘要:ScssScript 支持 6 种主要的数据类型: 数字,1, 2, 13, 10px 字符串,有引号字符串与无引号字符串,"foo", 'bar', baz 颜色,blue, #04a3f9, rgba(255,0,0,0.5) 布尔型,true, false 空值,null 数组 (list),
阅读全文
模块加载器基础学习,Commonjs 与 Seajs的区别;
摘要:1.概述 什么是模块化? 模块化就是把系统分离成独立功能个方法,需要什么功能,就加载什么功能; 优点: 解决传统编码过程中的命名冲突和文件依赖的问题; 提高代码的可维护性,可复用性以及提高生产效率。 CommonJs common.js主要用于服务器端; common.js加载模块是同步的,也就是说
阅读全文
Scss 与 Sass 入门学习小记 (一)
摘要:关于scss的安装请点击这里 1.变量 定义一个变量: SassScript 最普遍的用法就是变量,变量以美元符号($)开头,赋值方法与 CSS 属性的写法一样: 使用我们的定义的变量 变量支持块级作用域,嵌套规则内定义的变量只能在嵌套规则内使用(局部变量),不在嵌套规则内定义的变量则可在任何地方使
阅读全文