首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么数组下标 0 开始不是 1?

很多小伙伴初学编程的时候都被元素下标折磨过,为什么很多编程语言要把 0 作为第一个下标索引,不是直观的 1 呢?...那么我们能够迅速的写出如下四个符合上述连续序列的不等式: 1)2 <= i < 13 2)1 < i <= 12 3)2 <= i <= 12 4)1 < i < 13 以上四个不等式均满足要求,那是否有理由选择其中的一种不是另一种...遵循不等式 1 的规则: 当从下标 1 开始时,下标范围 1 ≤ i < N+1 当从下标 0 开始时,下标范围 0 ≤ i < N 哪个更优雅?...Dijkstra 是这样解释的:从下标 0 开始能够给出更好的不等式,因为元素的下标就等于序列中它前面的元素数(或者说 “偏移量”)。 问题解决!

86830

漫话:如何给女朋友解释为什么计算机0开始计数,不是1开始

当我们想要写一个循环体,期望执行10次的时候,我们会使用以下方式: for (int i=0; i<10; i++){ } 可以看到,为了保证循环10次,我们定义了一个整数变量0开始。...他认为,使用左闭右开的表达方式,当下标 1 开始时,下标范围为 1 <= i < N+1;当下标 0 开始时则是 0 <= i < N; 而显然后面这种表达式更加漂亮、优雅一些。...计数表示偏移量 很多人学习编程都是C语言开始的,那么,C语言就是一个典型的0-base语言(以0作为计数的开始),其实,这一约定早在BCPL时代就是这样的了。...在C语言还不叫C语言,还叫BCPL的时候,他的作者马丁·理察德就设计了数组0开始的索引方式。...开始的(1-based indexing),而对Python语言有巨大影响的另一门语言,C语言的索引则是0开始的。

1.1K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    数组下标为什么0开始不是1?

    例如:二叉树,堆,图,等,是非线性表,是因为,在非线性表中,数据之间并不是简单的前后关系。 数组是如何随机访问数组元素? 数组是如何实现根据下标随机访问数组元素的吗?...低效的“插入”和“删除” 插入 插入:最好O(1) 最坏O(n) 平均O(n) 什么时候会是O(1)?...将多次删除操作中集中在一起执行,可以先记录已经删除的数据,但是不进行数据迁移,仅仅是记录,当发现没有更多空间存储时,再执行真正的删除操作,这样减少数据搬移次数节省耗时。...为什么数组要从 0 开始编号,不是1? 偏移角度理解a[0] 0为偏移量,如果1计数,会多出K-1。增加cpu负担。...为什么循环要写成 for(inti=0;i<3;i++)不是 for(inti=0;i<=2;i++)。

    6.3K10

    算法:插入排序详解--为什么第二项开始不是第一项

    PS:对于插入排序这个算法,我们想要看清他就要从它的应用场景,概念,用法等去了解它,实现代码就那么几行,但有时还真是不好理解,比如说为什么第二项开始不是第一项开始呢,下面我们来举个例子看一下。...插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2) 1:插入排序 /** * 第二项开始...:把第二项数据暂存,和第一项比较,如果第一项>第二项则调换, * 2:把第三项数据暂存,和第二项比较,如果第二项>第三项则调换, 这时调换后的第二项还要和第一项比较,然后再判断调换,当前下标开始向左遍历凡是大于...* * * 很多人估计不理解为什么第二项开始不是第一项, * 这里我稍微做一下解释,插入排序就是将一个数据插入到已经排好序的有序数据中...,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序, * 我们对于一个数组,不知道哪里是排序好的,可能是前三条,也可能不是有序的,我们这时就要假设一段已经排好序的数组,我们直接取前三项的话

    1.2K60

    【CSS】课程网站 网格商品展示 模块制作 ① ( 网格商品展示模块盒子模型测量及样式 | 顶部文本标题盒子测量及样式 | 代码示例 )

    文章目录 一、网格商品展示模块盒子模型测量及样式 1、盒子尺寸测量 2、标题盒子尺寸测量和样式 3、左侧文本盒子尺寸测量和样式 4、右侧文本盒子尺寸测量和样式 二、顶部文本标题盒子代码示例 1、HTML...绘制矩形框中的部分 : 一、网格商品展示模块盒子模型测量及样式 ---- 1、盒子尺寸测量 下面的 网格商品展示模块盒子模型 , 可以分为三个盒子 , 最外层的大盒子 , 宽度充满版心 , 1200 像素 ; 顶部标题所在的盒子...3、左侧文本盒子尺寸测量和样式 标题盒子判定 , 上面的标题 , 可以将其设置为 垂直居中 的样式 , 垂直居中 , 需要行高 = 内容高度 , 这里精确的测量 " 精品推荐 " 文本的行高与内容高度...-- 头部模块 - 开始 --> 我的课程表 <!

    4.3K40

    3个用于从命令行进行演示的工具【Linux-Command line】

    也许你想多拥抱一会你内心的怪咖;也许你希望观众将注意力集中在你的想法上不是幻灯片上; 也许你是Takahashi method的奉献者。 无论出于何种原因使用终端,都有适用你的(演示)工具。...mpd可以识别大多数Markdown格式--标题和列表到代码块再到字符格式和URL。 你还可以添加Pandoc metadata block,其中可以包含你的姓名,演示文稿的标题以及演讲的日期。...这会将标题添加到每张幻灯片的顶部,并将你的姓名和日期添加到底部。 你的幻灯片位于单个文本文件中。 要让mdp知道幻灯片哪里开始,请在每张幻灯片后添加一行破折号。...你可以在幻灯片文件的顶部添加元数据块,以创建演示文稿的标题幻灯片。 通过键入“--heading”和标题文本来表示标题。 键入“--center”,然后在文本上将文本居中放置在幻灯片上。...但是,正如我在本文开头所说,使用这些工具创建和展示的幻灯片可以帮助你的听众更关注你的演说内容,不是视觉效果。 如果使用mdp或tpp,则需要对终端仿真器的设置进行一些调整才能获得正确的字体和大小。

    2.3K00

    1小时赚300块,不打代码帮人做个吃鸡网页

    标题头编写 1_bit:剩下就开始编写标题头了,我们可以先看看标题头,你觉得有哪些元素? 小媛:其实开头就是一个图片 logo,然后新闻和社区就是两个下拉列表,其他的就是文本咯。...1_bit:接下来我们在这个 main 行中创建一个容器,名为标题,用来存放标题这一行的元素。 小媛:是不是 标题 这一行还需要设置高度为包裹呀? 1_bit:聪明,是的。...小媛:我觉得我们改一下标题行、logo行的背景色可能会好看点,我把标题行和背景行的颜色都改为了 #252525。 1_bit:那接下来我们就开始添加下拉列表吧。...小媛:你的意思是,数组是 0 开始数数的? 1_bit:没错,是这个意思。 小媛:我改了,点击预览运行出来了,问题不大。...水平对齐为居中。 小媛:然后在这一行内创建一个行命名为新闻公告,高度为包裹,设置一个上外边距这样才可以距离顶部一个距离,接下来我们。

    78650

    《iVX 高仿美团APP制作移动端完整项目》04 美食页 标题、搜索、商家标题制作

    项目界面预览: 一、美食页顶部商家页制作 1.1 页面主格调确认 该美食页为首页中美食按钮点击后进入的页面。该页面分为顶部标题、搜索、商家店铺区;中部的分类以及最下面的商家推荐。...首先设置对应的高度为包裹、背景色为透明: 接着在对应的上下内边距中设置距离为 6: 接着我们需要设置该页的背景主题色,回到该页面设置主题色为红色: 1.2 标题设置 接着创建一个行命名为标题...: 此时文本将完全居中。...: 要想文本框和按钮完全贴合,只需设置其密贴的圆角为直角即可,例如按钮直接取消了左上和左下圆角的生效: 三、商家封面制作 接着往下就开始进入商家方面制作: 我们从上图中得知,商家封面为整个容器进行包裹...,一个命名为提示: 信息顶部中又分为左侧的标题和右侧的进店按钮,那么此时为了方便控制,编写两个行: 接着在左侧和右侧中方便创建文本,设置对应的值即可: 那么接下来创建提示内容标签

    97420

    《iVX 高仿美团APP制作移动端完整项目》06 美食页商家推荐内容、分类、推荐商家制作

    接下来开始制作超市便利页面: 一、标题 首先,我们创建一个页面,该页面设置背景颜色为黄色: 随后欧创建一个行,命名为主要,之后将会在这个主要行之中添加对应的模块内容: 该主要行,属性需要设置背景色为透明...,直接设置标题这个行的垂直对齐属性为居中即可: 二、 内容行制作 接着我们查看内容部分的搜索框在一个白色背景并且圆角包裹的容器之中: 此时我们应该先创建一个行,命名为内容并且给予背景色为白色...此时页面如下: 三、 搜索框制作 接着咱们往这个行中添加一个行,命名为搜索框: 再往这个搜索框中添加一个按钮和一个输入框: 接着给予这个搜索框的背景色为透明,并且使搜索框的内容水平居中对齐...,高度为包裹: 此时我们发现当前搜索框距离顶部太近,给予一个搜索框行的伤内边距即可: 在这一步最后,我们还需要把内容块的高度更改为包裹,使其可以跟随内部元素的高度增加增加:...四、 轮播图制作 接着咱们开始制作轮播图: 轮播图制作较为简单,我们先创建一个行,命名为轮播图,并且设置其背景色和高度包裹: 接着我们找到扩展组件的轮播页容器,并且使其添加到该行之中

    91320

    LaTeX详细教程+技巧总结

    另外,可以LaTeX的官方文档进行学习,官方文档大部分是英文文档,链接:LaTeX在线文档 ,LaTex宏包文档。...示例:\%,可以显示出百分号,不是注释的含义;\_,显示下划线,不是下标;\^显示符号本身,不是上标。...\end{abstract} % 标题开始 \section{一级标题1} 第一段一级标题下的内容,一级标题下的内容,一级标题下的内容,一级标题下的内容,一级标题下的内容,一级标题下的内容,一级标题下的内容...单张图片 需要导入宏包:\usepackage{graphicx} 例子: %开始插入图片 \begin{figure}[htbp] % htbp代表图片插入位置的设置 \centering %图片居中...可以Excel里面粘贴或导入,可以实现单元格合并,而且会在合并行或合并列的时候提醒要引入对应的宏包。

    16.7K53

    Layui 弹出层插件

    类型:string/Array/Boolean,默认:信息 title支持三种类型的值,若传入的是普通的字符串,如title :‘标题’,那么只会改变标题文本;若还需要自定义标题区域样式,那么可以...Array,默认“” content可传入的值是灵活多变的,不仅可以传入普通的html内容,还可以指定DOM,更可以随着type的不同不同 area—宽高 类型:String/Array,默认:...但如果不想垂直水平居中,还可以进行以下赋值: offset:‘auto’—垂直水平居中 offset:‘100px’—只定义top坐标,水平保持居中 offset:[‘100px’,‘50px’]...—同时定义top,left坐标 offset:‘t’—快捷键设置顶部坐标 offset:‘lt’—快捷键设置左上角 …… closeBtn – 关闭按钮 类型:String/Boolean,默认...结算,里顶部50px,不允许拉伸,content里面为内容ID 点击后弹出层的效果 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/131017.html原文链接

    3.4K20

    六、WebApp 二手信息站点页面制作(IVX 快速开发教程)

    六、二手信息站点页面制作 在了解了基础可视组件后,我们可以通过这些可视组件进行站点页面开发,在此以一个二手交易网站站点页面为例,本教程示例并不是成熟完善的示例,需要各位读者进行少量完善,示例只是用于功能讲解...): 该页面的主要分为 3 个大块,分别是: 顶部标题顶部下分类与轮播页 网页中部展示内容信息 底部的页尾 这三个大块还可以细分,顶部标题栏 分为 左侧站点信息、 搜侧搜索 与 发布内容区域;顶部下部分可分为...水平对齐 为 右侧对齐,垂直对齐 均为 居中: 接下来在 标题左侧行 中添加两个文本,修改文本属性后即可完成更改颜色: 在此你可能对该文本紧贴左侧边缘并不喜欢,可以更改该文本属性中的 左外边距...,这样这个行就可以居中进行显示;最后两步则是在这个 海报内容行 中创建两个行,一个命名为 广告左侧 一个命名为 广告右侧 并且 广告左侧行 宽度为 30% 广告右侧 宽度为 70%,广告左侧 内创建一个...6.1.3 最新信息内容展示 接下来开始制作最新信息块。

    1.9K30

    【CSS】盒子模型案例 ( 盒子模型尺寸计算 | 盒子模型水平居中 | 盒子模型内外边距设置 | 背景图片及位置设置 | 盒子嵌套设置 )

    文章目录 一、实现效果 二、基本 HTML 结构 三、设置最外层盒子样式 ( 盒子模型内外边距设置 ) 四、设置标题盒子样式 ( 盒子模型尺寸计算 | 盒子模型水平居中 ) 五、设置列表盒子样式 (...-- 标题盒子 --> 我的成就 <!...设置最外层盒子样式 ( 盒子模型内外边距设置 ) ---- 将 效果图片拖动 到 Adobe Fireworks 中 , 使用 切片工具 分析盒子模型 : 整个盒子的尺寸为 339 x 238 像素 盒子顶部的内边距为...( 盒子模型尺寸计算 | 盒子模型水平居中 ) ---- 在 Fireworks 中测量标题盒子样式 : 顶部标题盒子高度是 50 像素 文字大小为 17 像素 文字顶部有 16 像素 内边距..., 顶部使用外部模型盒子的内边距 , 可以不设置 文字底部有 16 像素 内边距 文字左侧有 16 像素 内边距 , 左侧使用外部模型盒子的内边距 , 可以不设置 标题盒子有一个 1 像素的下边框 代码示例

    1.5K10

    技术|在 Linux 上使用 groff-me 格式化你的学术论文

    我们的“大Unix”校园计算机实验室得知,Unix系统提供了一组文本格式化的程序nroff和troff,它们是同一系统的不同接口:nroff生成纯文本输出,适用于屏幕或行式打印机,troff产生非常优美的输出...段落让我们从一个简单的例子开始,在几乎所有类型的文档中都可以看到:段落。段落可以格式化为首行缩进或不缩进(即,与左边齐平)。...包括学术论文,杂志,期刊和书籍在内的许多印刷文档都使用了这两种类型的组合,其中文档或章节中的第一个(主要)段落左侧对齐,所有其他(常规)的段落缩进。...在大多数情况下,这不是你想要的。只要文字是粗体字,不是后面的句点也是粗体字。要获得您想要的效果,您可以向.b或.i添加第二个参数,以指示以粗体或斜体显示的文本后面跟着的任意文本以正常类型显示。...我发现最简单的方法是使用居中的文本块并在标题、名字和日期之间添加额外的行。(我倾向于在每一行之间使用两个空行)。在文章顶部标题页(.tp)宏开始,插入五个空白行(.sp5),然后添加居中文本(.

    1.6K30
    领券