数据结构与算法之美05

数据结构与算法之美05

数组:为什么很多编程语言中数组都从0开始编号? 数组看起来简单基础,但是很多人没有理解这个数据结构的精髓。带着为什么数组要从0开始编号,而不是从1开始的问题,进入主题。 1. 数组如何实现随机访问1) 数组是一种线性数据结构,用连续的存储空间存储相同类型数据I) 线性表:数组、链表、队列、栈 非线性表:树 图II) 连续的内存空间、相同的数据,所以数组可以随机访问,但对数组进行删除插入,为了保证数组的连续性,就要做大量的数据搬移工作a) 数组如何实现下标随机访问。引入数组再内存种的分配图,得出寻址公式b) 纠正数组和链表的错误认识。数组的查找操作时间复杂度并不是O(1)。即便是排好的数组,用二分查找,时间复杂度也是O(

技术可以小白,但心态不行!聊聊在黑客的世界里,我们如何正确提问!

技术可以小白,但心态不行!聊聊在黑客的世界里,我们如何正确提问!

在黑客的世界里,当你拋出一个技术问题时,最终是否能得到有用的回答,往往取决于你所提问和追问的方式。本指南将教你如何正确的提问以获得你满意的答案。 不只是黑客,现在开源(Open Source)软件已经相当盛行,你常常也可以由其他有经验的使用者身上得到好答案,这是件好事;使用者比起黑客来,往往对那些新手常遇到的问题更宽容一些。然而,将有经验的使用者视为黑客,并采用本指南所提的方法与他们沟通,同样也是能从他们身上得到满意回答的最有效方式。 首先你应该明白,黑客们喜爱有挑战性的问题,或者能激发他们思维的好问题。如果我们并非如此,那我们也不会成为你想询问的对象。如果你给了我们一个值得反复咀嚼玩味的好问题,我们自

数据结构与算法之美04

数据结构与算法之美04

复杂度分析(下):浅析最好、最坏、平均、均摊时间复杂度 一、复杂度分析的4个概念1.最坏情况时间复杂度:代码在最理想情况下执行的时间复杂度。2.最好情况时间复杂度:代码在最坏情况下执行的时间复杂度。3.平均时间复杂度:用代码在所有情况下执行的次数的加权平均值表示。4.均摊时间复杂度:在代码执行的所有复杂度情况中绝大部分是低级别的复杂度,个别情况是高级别复杂度且发生具有时序关系时,可以将个别高级别复杂度均摊到低级别复杂度上。基本上均摊结果就等于低级别复杂度。 二、为什么要引入这4个概念?1.同一段代码在不同情况下时间复杂度会出现量级差异,为了更全面,更准确的描述代码的时间复杂度,所以引入这4个概念。2.代码复

H5线上调试,淘宝APP嵌入H5

H5线上调试,淘宝APP嵌入H5

上了线上的h5页面有问题,该如何处理 基本流程:前端开发完成后,在浏览器中测试,完成后交给安卓,IOS开发人员 安卓和IOS开发人员发现H5页面有问题怎么办?上线 h5 页面有问题,回退上一个版本,紧急修复,修复完成后上线只要是安卓或者IOS一般浏览器没有问题,在特定机型上也是没有问题的!因此,比样式如出了问题,应该还是H5样式文件,JS文件等本身有问题。这时候可以使用 vconsole 插件,查看控制台,但是上线一定要删除这个插件。vconsole 可以在移动端打开控制台https://www.npmjs.com/package/vconsole 这个插件一般只是查看接口,数据等问题,样式没办法直接在手机端调试的,安卓、IOS部分机型样式不行。 参考下边的文档 https://bl

数据结构与算法之美03

数据结构与算法之美03

复杂度分析(上):如何分析、统计算法的执行效率和资源消耗? 一、什么是复杂度分析? 1.数据结构和算法解决是“如何让计算机更快时间、更省空间的解决问题”。 2.因此需从执行时间和占用空间两个维度来评估数据结构和算法的性能。 3.分别用时间复杂度和空间复杂度两个概念来描述性能问题,二者统称为复杂度。 4.复杂度描述的是算法执行时间(或占用空间)与数据规模的增长关系。 一、什么是复杂度分析? 1.数据结构和算法解决是“如何让计算机更快时间、更省空间的解决问题”。 2.因此需从执行时间和占用空间两个维度来评估数据结构和算法的性能。 3.分别用时间复杂度和空间复杂度两个概念来描述性能问题,二者统称为复杂度。 4.复杂度描述

数据结构与算法之美02

数据结构与算法之美02

如何抓住重点,系统高效地学习数据结构与算法? 当我们要谈一个事物/概念的时候,需要问自己三个终极问题–是什么?为什么?怎么样? 什么是数据结构和算法 数据结构,就是一组数据的存储结构。 算法,就是操作数据的一组方法。 数据结构是为算法服务的,算法要作用在特定的数据结构之上。 为什么需要数据结构和算法 来谈谈应用层面的原因。在计算机科学和互联网迅猛发展下,需要计算的数据量越来越庞大。但是计算机的计算能力是有限的,这么大量的数据计算,需要越来越多的计算机,需要越来越长的计算时间,注重效率的我们需要尽可能的提高计算效率。其中重要的一项,就是使用合适的数据结构和算法。选用合适的数据结构和算法,特别是在

数据结构与算法之美01

数据结构与算法之美01

为什么要学习数据结构和算法? 为什么学习数据结构和算法?我认为有3点比较重要 1.直接好处是能够有写出性能更优的代码。 2.算法,是一种解决问题的思路和方法,有机会应用到生活和事业的其他方面。 3.长期来看,大脑思考能力是个人最重要的核心竞争力,而算法是为数不多的能够有效训练大脑思考能力的途径之一。

大小端模式

大小端模式

大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。 小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。 目前Intel的80×86系列芯片是唯一还在坚持使用小端的芯片,ARM芯片默认采用小端,但可以切换为大端;而MIPS等芯片要么采用全部大端的方式储存,要么提供选项支持大端——可以在大小端之间切换。另外,对于大小端的

钢铁侠传

钢铁侠传

托尼早孤,锐志好学。其父霍华德在时,尝以其寄庠序,尼不知其父有志于国,谓其漠己。公论曰,愈恶一人愈如其人。尼既弱冠,尽能袭承父业。造钛金甲胄匿其内,千里不留行,显达一时,见用于兵部。尝有一姝,别号小辣椒,其德婉贞、淑贤。诗经有言,何彼浓矣,华若桃李,庶几谓之。二人相知,卿卿我我,尼既知世间有爱,遂宥其父,誓曰,孰弑吾亲,必手刃之。 尝有路人问之,人其谓汝“夺命奸贾”,汝如何言?尼对曰,吾制铠仗弓弩,皆为治道,以暴易暴,尔等知否?殄灭苍生,吾耻为之。然觇视诸侯征战,其铠仗致天下流血漂橹,遂戢械以止战,不言兵戎。其叔父欧比僭越,尼忍痛戮之。后为匪所劫,用匪之械,缮为机甲,遂称钢铁侠。且寤之曰,侠之

ansible

ansible

ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。 ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括: (1)、连接插件connection plugins:负责和被监控端实现通信; (2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机; (3)、各种模块核心模块、command模块、自定义模块; (4)、借助于插件完成记录日志邮件等功能; (5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。