![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
纨_绔
。。。
展开
-
二维数据结构
二维数组拓扑学是一种不研究大小和长度的学科,只考虑关系二维拓扑结构:树:树由根结点和若干颗子树构成的。树是由一个集合以及在该集合上定义的一种关系构成的。集合中的元素称为树的结点,所定义的关系称为父子关系。父子关系在树的结点之间建立了一个层次结构。在这种层次结构中有一个结点具有特殊的地位,这个结点称为该树的根结点,或称为树根。单个结点是一棵树,树根就是该结点本身。 树的度:一棵树中,最大...原创 2019-12-06 14:45:09 · 1021 阅读 · 0 评论 -
js位运算 源码 补码 反码
原码一个数在计算机中是以二进制的形式存在的,其中第一位存放符号, 正数为 0, 负数为 1。原码就是用第一位存放符号的二进制数值。例如 2 的原码为 00000010,-2 的原码为10000010。反码正数的反码是其本身。负数的反码是在其原码的基础上,符号位不变,其余各位取反,即 0变 1,1 变 0。[+3]=[00000011]原=[00000011]反[-3]=[1000001...原创 2019-11-18 12:02:37 · 1873 阅读 · 1 评论 -
算法之快速排序
**定义:**快速排序算法通过多次比较和交换来完成对数组元素的排序;其基本思想是在数组元素中找取任意一个值;将这个值当做分界点;比这个值小的元素放在分界值的左边;比这个值大的元素放在元素的右边;这样就形成了两个部分;重复进行这样的过程,左右两边的部分都为空时,递归结束。举个例子:var arr = [6,1,2,5,3,4,9,8,7];随机抽取数组中的一个值当做分界值;比方说是3号元素ar...原创 2019-11-12 11:53:18 · 128 阅读 · 0 评论 -
数组的排序 ---冒泡排序和选择排序
排序的本质是交换和比较。冒泡排序:相邻两个元素之间进行比较,满足条件则进行位置交换,不满足则依次进行比较两个相邻的元素,不交换位置。经过这样的过程,最大的元素(或者最小的元素)会升到数组的头部或者尾部(取决于交换的函数)排序函数里一般都会有这样的三个函数// 冒泡排序// 比较的函数function compare(a,b){ if( a < b ) return t...原创 2019-11-06 14:50:11 · 204 阅读 · 0 评论 -
一维数据结构的遍历方法--链表和数组
链表的循环遍历,因为你不知道有多少个节点,所以采用while循环语句function ergodicLink(node) { var temp = node while (true) { if (temp != null) { console.log(temp.value, '我是链表') } else { ...原创 2019-11-06 11:38:47 · 427 阅读 · 0 评论 -
链表的逆置
这些文章是自己做的一些笔记,仅仅为了方便以后自己查阅链表中的每一个节点都认为自己是根节点(都可以成为一个单独的链表),本身不知道是否有父节点指向了自己。逆置完成后应该将原链表的最后一个节点返回出去,此时他是逆置后链表的根节点。每一次的递归都应该将下一个的节点指向改为传入的节点(自己),将传入的节点本身的指向改为空,不置空的话,在逆置到最后一步的时候,原本链表的根节点(第一个节点)和第二个节...原创 2019-11-06 11:20:32 · 271 阅读 · 0 评论 -
数据结构之一维数据结构
一维数据结构又称线性数据结构,线性的数据结构强调的是存储与顺序;最基本的数据结构,最广泛的应用是存储线性数据结构:比较典型的为 – 数组 链表数组:特性:1、存储在物理空间上是连续的2、底层的数组的长度是固定的(数组定长) 前端的数组常见的有两种方法生成:var arr = 【】;在创建对象时,会分配默认的元素个数,也就是说,哪怕你这个里边只放一个元素,它也会占据默认元素个...原创 2019-11-04 15:44:15 · 1263 阅读 · 0 评论