#数据结构与算法

(js描述的)数据结构[哈希表1.1](8)

一.数组的缺点1.数组进行插入操作时,效率比较低。2.数组基于索引去查找的操作效率非常高,基于内容去查找效率很低。3.数组进行删除操作,效率也不高。二.哈希表1.几乎所有的编程语言都有直接或间接的应用这种数据结构2.哈希表是基于数组实现的,但相对于数组有很多优势。1.它可以提供非常快速的插入-删除-查找操作2.无论多少...

(js描述的)数据结构[字典](7)

一.字典的特点1.字典的主要特点是一一对应关系。2.使用字典,剋通过key取出对应的value值。3.字典中的key是不允许重复的,而value值是可以重复,并且字典中的key是无序的。字典和映射关系;字典和数组;字典和对象;二.代码实现字典functionDictionary(){this.dic={}//1.add...

(js描述的)数据结构[集合结构](6)

一.集合结构特点1.集合中的元素不能重复。2.集合是无序的。二.集合的代码实现functionSet(){this.items={}//1.add方法Set.prototype.add=function(value){//判断集合中是否包含元素if(this.has(value)){returnfalse}//把数据添...

(js描述的)数据结构[双向链表](5)

1.只能按顺序查找,即从上一个到下一个,不能反过来。1.可以双向查找1.结构较单向链表复杂。2.占用内存比单项链表多。functionDoublyLinkedList(){//内部节点类functionNode(data){this.data=datathis.next=nullthis.prev=null}//属性t...

(js描述的)数据结构[链表](4)

一.基本结构二.想比于数组,链表的一些优点1.内存空间不是必须连续的,可以充分利用计算机的内存,事项灵活的内存动态管理。2.链表不必再创建时就确定大小,并且大小可无限的延申下去3.链表再插入和删除数据时,比数组的效率高很多三.相比于数组,链表的一些缺点1.链表访问任何一个位置的元素时,都需要从头开始访问2.无法通过下标...

(js描述的)数据结构[队列结构,优先级队列](3)

1.基于数组来实现,的一种受限的线性结构。2.只允许在表头进行删除操作,在表尾进行插入操作。3.先进先出(FIFO)1.按一定顺序打印文档,执行输出后的结果。2.多线程的实际执行顺序,就如队列结构相似。functionQueue(){this.items=[]//向队尾添加一个元素Queue.prototype.enq...

(js描述的)数据结构[栈结构](2)

一.什么是栈结构1.一种受限制的线性结构,这种结构可以基于数组来实现。2.可以抽象成一个容器,上面的是栈顶,底下的是栈底。所以仅允许对栈顶进行操作,二.栈结构的应用1.函数式调用栈:基于栈的形式来进行函数的整体调用。2.递归:栈溢出就是其中的一点。三.栈结构常见的操作push():添加一个元素到栈顶。pop():移除栈...

(js描述的)数据结构 [数组的一些补充](1)

1.优点:高度封装,对于数组的操作就是调用API1.优点:根据index来查询,修改数据效率很高2.缺点:*普通的数组不支持存放不同的数据类型,所以在对普通数组进行封装的时候一般用对象(例如:javaArrayList)。*普通数组的删除,中间插入等操作效率很低。*普通的数组不支持扩容,即申请多少大小的数组数组的大小就...

Sunday串匹配算法 C语言实现

1unsignedchar*sunday(void*a_buf1,2unsignedintlen1,3void*a_buf2,4unsignedintlen2){56unsignedchar*buf1=(unsignedchar*)a_buf1;7unsignedchar*buf2=(unsignedchar*)a_b...

数据结构概述和动态数组

  在实际应用中,根据使用场景来选择最合适的数据结构线性表是具有n个相同类型元素的有限序列(n≥0)  a1是首节点(首元素),an是尾结点(尾元素)a1是a2的前驱,a2是a1的后继 数组是一种顺序存储的线性表,所有元素的内存地址是连续的  &nb...

算法概述和时间复杂度

算法是用于解决特定问题的一系列的执行步骤,使用不同算法,解决同一个问题,效率可能相差非常大比如:求第n个斐波那契数(fibonaccinumber)/***斐波那契数列Fibonaccisequence*斐波那契数列(Fibonaccisequence),又称黄金分割数列、*因数学家莱昂纳多·斐波那契(Leonardo...

Redis 中 5 种数据结构的使用场景介绍

这篇文章主要介绍了Redis中5种数据结构的使用场景介绍,本文对Redis中的5种数据类型String、Hash、List、Set、SortedSet做了讲解,需要的朋友可以参考下原来看过redisbook这本书,对redis的基本功能都已经熟悉了,从上周开始看redis的源码。目前目标是吃透redis的数据结构。我们...

排序算法的复习和总结[PHP实现]

对于PHP中对数组的元素进行排序,这个是很经常用到的,之前的项目中也有,而且对于几种排序我们都是用的是asort arsort等PHP原生函数,没有自己去实现,所以就对一下的几个函数进行总结,这个会不断的进行补充,自己也可以好好的复习和总结。直接上代码吧!<?php/***插入排序(一维数组)*每次将一...

JVM的垃圾回收机制 总结(垃圾收集、回收算法、垃圾回收器)

如果想了解Java内存模型参考:jvm内存模型-和内存分配以及jdk、jre、jvm是什么关系(阿里,美团,京东)相信和小编一样的程序猿们在日常工作或面试当中经常会遇到JVM的垃圾回收问题,有没有在夜深人静的时候详细捋一捋JVM垃圾回收机制中的知识点呢?没时间捋也没关系,因为小编接下来会给你捋一捋。一、技术背景你要了解...

解决多线程安全问题-无非两个方法synchronized和lock 具体原理以及如何 获取锁AQS算法 (百度-美团)

 本篇文章主要讲了lock的原理就是AQS算法,还有个姊妹篇讲解synchronized的实现原理也是阿里经常问的,参考:深入分析Synchronized原理(阿里面试题)一定要看后面的文章,先说结论: 非公平锁tryAcquire的流程是:检查state字段,若为0,表示锁未被占用,那么尝试占用,...
首页上一页...3738394041...下一页尾页