
js数据结构结构和算法
ttt54355
这个作者很懒,什么都没留下…
展开
-
js数据结构和算法(一)概述
程序设计=数据结构+算法数据结构数据结构就是关系,没错,就是数据元素相互之间存在的一种或多种特定关系的集合。传统上,我们把数据结构分为逻辑结构和物理结构。逻辑结构:是指数据对象中数据元素之间的相互关系,也是我们今后最需要关注和讨论的问题。物理结构:是指数据的逻辑结构在计算机中的存储形式。常用的数据结构有:数组,队列(queue),堆(heap)转载 2017-03-02 16:15:47 · 620 阅读 · 0 评论 -
js数据结构和算法(二)栈和队列
基本概念栈和队列都是动态的集合,在栈中,可以去掉的元素是最近插入的哪一个。栈实现了后进先出。在队列中,可以去掉的元素总是在集合中存在的时间最长的那一个。队列实现了先进先出的策略。栈的官方定义:栈(Stack)是一个后进先出(Last in first out,LIFO)的线性表,它要求只在表尾进行删除和插入操作。对于栈来说,这个表尾称为栈的栈顶,相应的表头称为栈底。入栈使用push转载 2017-03-02 16:17:07 · 420 阅读 · 0 评论 -
js数据结构和算法(三)二叉树
二叉树的概念二叉树(Binary Tree)是n(n>=0)个结点的有限集合,该集合或者为空集(空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树的二叉树组成。二叉树的特点每个结点最多有两棵子树,所以二叉树中不存在度大于2的结点。二叉树中每一个节点都是一个对象,每一个数据节点都有三个指针,分别是指向父母、左孩子和右孩子的指针。每一个节点都是转载 2017-03-02 16:17:37 · 458 阅读 · 0 评论 -
js数据结构和算法(四)图和图算法
图的定义图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。有向图有向边:若从顶点Vi到Vj的边有方向,则称这条边为有向边,也成为弧(Arc),用有序偶来表示,Vi称为弧尾,Vj称为弧头。无序图 无向边:若顶点Vi到Vj之间的边没有方向,则称这条边为无向边(Ed转载 2017-03-02 16:18:21 · 654 阅读 · 1 评论 -
js数据结构和算法(五)字典和散列(hash)
什么是字典结构?字典是以键值对形式存储数据的数据结构,就像电话号码薄里的名字和电话号码那样的一一对应的关系。javascript的Object类就是以这样的一种字典形式设计的。键值对在字典中以这样的方式标记:d = {key1 : value1, key2 : value2 }。字典中的键/值对是没有顺序的。如果你想要一个特定的顺序,那么你应该在使用前自己对它们排序。转载 2017-03-02 16:19:11 · 641 阅读 · 0 评论 -
常用排序算法之JavaScript实现
1、插入排序1)算法简介插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。2)算法描转载 2017-03-02 16:20:36 · 295 阅读 · 0 评论 -
JavaScript算法详解——快速排序
常见排序javaScript实现的常见排序算法有:冒泡排序,选择排序,插入排序,谢尔排序,快速排序(递归),快速排序(堆栈),归并排序,堆排序过程"快速排序"的思想很简单,整个排序过程只需要三步: (1)在数据集之中,找一个基准点 (2)建立两个数组,分别存储左边和右边的数组 (3)利用递归进行下次比较看一个demo:http://jsdo.it转载 2017-03-02 16:21:28 · 420 阅读 · 0 评论