首页
学习
活动
专区
工具
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 开始能够给出更好的不等式,因为元素的下标就等于序列中它前面的元素数(或者说 “偏移量”)。 问题解决!

83730

漫话:如何给女朋友解释为什么计算机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开始的。

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.2K10

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

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

1.2K60

助力数据可视化的 20 个指导方法

始终审查您的数据集和用户访谈开始。 2.根据正负值使用正确的绘图方向 当使用单杠,图片左侧价值观和积极的右侧基准的。 不要在基线的同一侧绘制负值和正值。 3....始终在 0 基线处开始条形图 截断会导致误传。在下面的示例中,查看左侧的图表,您可以很快得出结论,值 B 比 D 大 3 倍以上,实际上差异要小得多。零基线开始可确保用户获得更准确的数据表示。...8.限制饼图中显示的切片数量 饼图是最受欢迎且经常被误用的图表之一。在大多数情况下,条形图是更好的选择。...将最大值放在顶部(对于水平条形图)或左侧(对于垂直条形图),以确保最重要的值占据最突出的空间,减少眼球运动和阅读图表所需的时间。 13....关注易读性 确保排版传达信息并帮助用户专注于数据,不是分散注意力。

1.6K30

20个小技巧,让数据可视化图表更专业!

2、根据正负值选择合适的绘图方向 绘制水平条形图时,在Y轴左侧绘制负值,在Y轴右侧绘制正值,不要把正负值绘制到轴同一侧。 垂直柱状图同理。 3、0基线开始绘制柱状图 截断Y轴会导致表达失真。...在下面的示例中,查看左侧的图表,可以很快得出结论,值 B 比 D 大 3 倍以上,实际上差异要小得多。 0基线开始可确保用户获得更准确的数据表达。...4、折线图使用自适应Y 轴比例 对于折线图,如果始终将 Y 轴比例限制为0开始可能会使图表过于平坦,无法表达趋势变化。...将最大值放在顶部(对于水平条形图)或左侧(对于垂直条形图),以确保最重要的值占据最突出的空间,减少眼球运动和阅读图表所需的时间。...注意以下几点: 选择易读的字体,比如雅黑、黑体,避免衬线和装饰性很强的字体 避免斜体、粗体和全部大写 确保与背景形成高对比度 不要旋转文字 18、使用水平条形图不是旋转标签 标签过长时不要使用旋转角度

2.7K20

图表(Chart & Graph)你真的用对了吗?

为了确保我们正确的使用了图表,可以以下5个方面具体考虑。 1. 是否需要对比数据? 图表很适合于对比多个数据集。通过图表,可以轻易的看到数据的高低。...1)柱状图 柱状图用于显示不同数据之间的对比,也可以显示随时间变化的数据对比。 设计柱状图的最佳做法: 图表中使用对比色,高亮特殊有意义的数据。 使用水平标签,提高数据可读性。...y轴起始为0,可以显示各柱状的数值。 2)条形图 条形图基本上是水平的柱形图,可以用于避免在超过10个项目进行比较时产生杂乱。这种图表类型也可用于显示负数。...设计条形图的最佳做法: 图表中使用对比色,高亮特殊有意义的数据。 使用垂直标签,提高数据可读性。 X轴起始为0,可以显示各柱状的数值。...设计双轴图的最佳做法: 使用左侧的y轴作为主要变量 ,因为大脑自然倾向于先看向左。 使用不同的图形样式来说明两个数据集,如上所示。 为两个数据集使用对比色。

2.3K10

Excel实例:Excel图表可视化:条形图、折线图、散点图和步骤图

例如,第一种是二维并排条形图第二种是二维堆积条形图。 使用“ 设计”,“ 布局” 和“ 格式”功能区 来完善图表。 现在,我们通过以下示例演示如何创建条形图。...如果要按品牌销售图表不是按城市销售图表,则可以单击该图表,然后选择“ 设计”>“数据” |“切换行/列”。...您也可以通过单击图表,选择“ 设计”>“类型” |“更改图表类型” ,然后选择所需的图表类型(例如,堆叠的条形图不是并排的条形图)来更改图表的类型。 折线图 折线图的创建过程与条形图相似。...由于没有数据元素对应于低于20,000的收入,因此最好使垂直轴20,000不是0开始。...图表现在将包含地区名称标签,如图6左侧所示。 ? 图6 –带有标签的散点图 步骤图 Excel不提供步骤图功能,但我们可以使用上面显示的散点图功能来创建步骤图。

5K10

Excel实例:Excel图表可视化:条形图、折线图、散点图和步骤图

例如,第一种是二维并排条形图第二种是二维堆积条形图。 使用“  设计”,“  布局”  和“  格式”功能区  来完善图表。 现在,我们通过以下示例演示如何创建条形图。...如果要按品牌销售图表不是按城市销售图表,则可以单击该图表,然后选择“  设计”>“数据” |“切换行/列”。...您也可以通过单击图表,选择“  设计”>“类型” |“更改图表类型”  ,然后选择所需的图表类型(例如,堆叠的条形图不是并排的条形图)来更改图表的类型。 折线图 折线图的创建过程与条形图相似。...由于没有数据元素对应于低于20,000的收入,因此最好使垂直轴20,000不是0开始。...图表现在将包含地区名称标签,如图6左侧所示。 图6 –带有标签的散点图 步骤图 Excel不提供步骤图功能,但我们可以使用上面显示的散点图功能来创建步骤图。

4.1K00

图表解析系列之柱状图

请注意:【条形图】在不同的产品或是概念解析中存在差异,例如在维基百科中,条形图等同于柱状图,认为柱状图为条形图的另一种称呼。更多时候条形图我们可理解为专指横向的柱状图。...图片 双轴图(组合图) 双轴图的指标分为左侧指标和右侧指标,对应的坐标轴分别为坐标 Y 轴的左轴(主轴)和右轴(副轴)。...图中左侧为现在的最高税率 35%,右侧则是第二年 1 月 1 日的最高税率 39.6%。 图片 看这幅图时,你对未来减税政策结束有什么看法?或许担心税率的大幅提升?让我们仔细看看。...注意纵轴的底端(最右侧)是 34 开始的,不是 0。这意味着条形图理论上应该向下延伸到页面的底部。...如果我们以 0 作为纵轴起点,条形图按实际高度绘制(35 和 39.6),实际视觉增长只有 13%[ (39.6-35)/35]。 图片

2K50

52个数据可视化图表鉴赏

36.雷达图 (LPL打野数据雷达图) 雷达图是一种以二维图的形式显示多元数据的图形方法,该二维图由三个或更多定量变量组成,这些变量同一点开始在轴上表示。轴的相对位置和角度通常不具信息性。...37.圆型条形图 圆型条形图只是在极坐标系上绘制的条形图不是在笛卡尔坐标系上绘制的条形图。虽然看起来很酷,但圆型条形图的问题是条形长度可能会被误解。...图上的每个圆表示一个刻度上的值,径向分隔符(从中心跨越的线)用于每个类别或间隔(如果是直方图)。通常,刻度上的较低值从中心开始,随着每个圆的增大增大。...但是,负值也可以显示在圆型柱状图上,法是任何一个外圆(从中心圆)开始零位,并将其内的所有圆用于负值。 39.圆型树形图 这种类型的可视化通过一系列环显示层次结构,这些环为每个类别节点切片。...曲线图螺旋的中心开始向外延伸。缓和曲线图用途广泛,可以使用沿缓和曲线路径显示的条、线或点。螺旋图是显示大型数据集的理想方法,通常用于显示较长时间段内的趋势。这使得螺旋图非常适合显示周期性图案。

5.7K21

可视化图表样式使用大全

分组式面积图在相同的零轴开始堆叠式面积图则从先前数据系列的最后数据点开始。...在南丁格尔玫瑰图中,代表数值的是分段面积,不是其半径。 推荐的制作工具有:Datamatic、Infogr.am。 旭日图 ?...图表螺旋形的中心开始往外发展。螺旋图十分多变,可使用条形、线条或数据点,沿着螺旋路径显示。 螺旋图很适合用来显示大型数据集,通常显示长时间段内的数据趋势,因此能有效显示周期性的模式。...这种图表使用同心圆网格来绘制条形图。每个圆圈表示一个数值刻度,径向分隔线则用作区分不同类别或间隔(如果是直方图)。 条形通常从中心开始向外延伸,但也可以别处为起点以显示数值范围(如跨度图)。...绘制地区分布图时的常见错误:对原始数据值(例如人口)进行运算,不是使用归一化值(例:计算每平方公里的人口)。

9.3K10

常用60类图表使用场景、制作工具推荐!

分组式面积图在相同的零轴开始堆叠式面积图则从先前数据系列的最后数据点开始。...在南丁格尔玫瑰图中,代表数值的是分段面积,不是其半径。 推荐的制作工具有:Datamatic、Infogr.am。...图表螺旋形的中心开始往外发展。螺旋图十分多变,可使用条形、线条或数据点,沿着螺旋路径显示。 螺旋图很适合用来显示大型数据集,通常显示长时间段内的数据趋势,因此能有效显示周期性的模式。...这种图表使用同心圆网格来绘制条形图。每个圆圈表示一个数值刻度,径向分隔线则用作区分不同类别或间隔(如果是直方图)。 条形通常从中心开始向外延伸,但也可以别处为起点以显示数值范围(如跨度图)。...绘制地区分布图时的常见错误:对原始数据值(例如人口)进行运算,不是使用归一化值(例:计算每平方公里的人口)。

8.7K20

再谈可视化:如何展示数据

上面在一张图中展示31个省市自治区的GDP数据,使用条形图展示就非常合适。上图还使用了两个常见的条形图技巧。一个数值排序,这样有利于受众数值对比,二是使用了色温显示进一步加强了对比。...用水平条形图替代饼图,按大到小或者反向组织。记住,在条形图中,我们的眼睛会比较条形图的末端。由于以统一的基线对齐,很容易比较相对大小。这样不仅可以很直观地了解哪块最大,还能了解它比其他类别大多少。...饼图转换成条形图可能会有所遗漏。饼图能够传达的一个独特的信息就是整体和部分的概念。但如果图形本身难以理解, 4)....建议自行选择颜色的使用,不是让工具自动选择。可以考虑统一色调、对比色、品牌色的使用。 强调大小 大小很重要。相对大小代表了相对重要性。如果你需要展示几件重要性相同的事情,请使用相似的大小。...位置 大多数受众会图表或者幻灯片的左上角开始,按“之”字形扫视屏幕或者页面。他们会最先看到页面的顶端,这使得这里成为了风水宝地。考虑将最重要的内容放在这里。

2.7K21

Excel图表学习:漏斗图2

漏斗图实际上是条形图的一种形式,两者之间的区别在于漏斗图中的条形位于绘图区幅面的中心不是开始于垂直轴。 漏斗图可用于显示跨阶段或类别的值。...可以使用漏斗图的一个例子是显示销售过程中每个阶段的交易量,从一般查询的数量开始,然后是真正的潜在客户,对提供的报价做出回应的人,联系讨论/谈判的人,最后是下订单的人。...图1 首先,对数据进行整理,找到数量中最大的数为1057,将该数输入到单元格B11中,在“数量”列的左侧添加一列数据,然后在单元格C4中输入公式: =B11/2-D4/2 下拉至单元格C9,结果如下图2...图2 选择数据单元格B4:D9,单击功能区“插入”选项卡“图表”组中的“堆积条形图”,结果如下图3所示。 图3 单击选择系列1,再单击右键,选择“设置数据系列格式”命令,设置如下图4所示。...图5 现在的图表不像漏斗,这是由于数字不是按降序排列的。选择数据表区域B3:D9,单击功能区“开始”选项卡“编辑”组中“排序和筛选——自定义排序”,设置如下图6所示。 图6 结果如下图7所示。

2.1K30

你真的懂如何展示数据吗?

上面在一张图中展示31个省市自治区的GDP数据,使用条形图展示就非常合适。上图还使用了两个常见的条形图技巧。一个数值排序,这样有利于受众数值对比,二是使用了色温显示进一步加强了对比。...用水平条形图替代饼图,按大到小或者反向组织。记住,在条形图中,我们的眼睛会比较条形图的末端。由于以统一的基线对齐,很容易比较相对大小。这样不仅可以很直观地了解哪块最大,还能了解它比其他类别大多少。...饼图转换成条形图可能会有所遗漏。饼图能够传达的一个独特的信息就是整体和部分的概念。但如果图形本身难以理解, ? 4)....建议自行选择颜色的使用,不是让工具自动选择。可以考虑统一色调、对比色、品牌色的使用。 强调大小 大小很重要。相对大小代表了相对重要性。如果你需要展示几件重要性相同的事情,请使用相似的大小。...位置 大多数受众会图表或者幻灯片的左上角开始,按“之”字形扫视屏幕或者页面。他们会最先看到页面的顶端,这使得这里成为了风水宝地。考虑将最重要的内容放在这里。

2.3K30

60 种常用可视化图表,该怎么用?

分组式面积图在相同的零轴开始堆叠式面积图则从先前数据系列的最后数据点开始。...在南丁格尔玫瑰图中,代表数值的是分段面积,不是其半径。 推荐的制作工具有:Datamatic、Infogr.am。...图表螺旋形的中心开始往外发展。螺旋图十分多变,可使用条形、线条或数据点,沿着螺旋路径显示。 螺旋图很适合用来显示大型数据集,通常显示长时间段内的数据趋势,因此能有效显示周期性的模式。...这种图表使用同心圆网格来绘制条形图。每个圆圈表示一个数值刻度,径向分隔线则用作区分不同类别或间隔(如果是直方图)。 条形通常从中心开始向外延伸,但也可以别处为起点以显示数值范围(如跨度图)。...绘制地区分布图时的常见错误:对原始数据值(例如人口)进行运算,不是使用归一化值(例:计算每平方公里的人口)。

8.6K10

J. Chem. Theory Comput. | 通过变分自编码器隐空间采样生成蛋白质结构集合

下方的条形图显示了AF2和VAE重建模型在不同蛋白晶体结构的C-alpha坐标的RMSD偏差。RMSD值低于1埃的被认为是高度精确的预测(对应图中的灰色虚线)。...K-Ras结构重建评估 图 7 在条形图图的上部,有四个蛋白质结构的对比,显示了不同模型预测的结构叠加。条形图显示了不同蛋白质结构预测方法相对于目标晶体结构的C-alpha坐标均方根偏差(RMSD)。...在图的上部有三个复合物的结构叠加,展示了与目标晶体结构结合的配体抑制剂,其中隐蔽结合口袋和配体以橙色高亮显示。...小分子对接到VAE生成的结构集合 图 9 图中显示了三个不同蛋白质结构的配体对接情况的可视化,以及与之相关的配体原子均方根偏差(RMSD)的统计条形图。...每一列代表一种特定的方法预测(第一列除外,第一列为留出的晶体结构复合物)。右侧的两个条形图显示了两种RMSD值。上方的条形图展示整个结合口袋的RMSD,下方的条形图则展示配体原子的RMSD。

16310

60种常用可视化图表的使用场景——(上)

分组式面积图在相同的零轴开始堆叠式面积图则从先前数据系列的最后数据点开始。...此外,雷达图也可用于查看数据集中哪些变量得分较高/低,是显示性能表现的理想之选。 每个变量都具有自己的轴(从中心开始)。所有的轴都以径向排列,彼此之间的距离相等,所有轴都有相同的刻度。...不过,圆环图还是比饼形图略有优势,它让人不再只看「饼」的面积,反面更重视总体数值的变化:专注于阅读弧线的长度,不是比较「饼与饼」之间的比例不同。...在南丁格尔玫瑰图中,代表数值的是分段面积,不是其半径。 推荐的制作工具有:Datamatic、Infogr.am。...图表螺旋形的中心开始往外发展。螺旋图十分多变,可使用条形、线条或数据点,沿着螺旋路径显示。 螺旋图很适合用来显示大型数据集,通常显示长时间段内的数据趋势,因此能有效显示周期性的模式。

14410

Google数据可视化团队:数据可视化指南(中文版)

柱状图(条形图)和饼图 柱状图(条形图)和饼图都可用于显示比例,表示部分与总体的对比。...例如,在条形图中,条形颜色可以表示类别,条形长度可以表示值(如人口数量)。 ? 形状可用于表示定性数据。...坐标轴 一个或多个坐标轴显示数据的比例和范围。例如,折线图沿水平和垂直坐标轴显示一系列值。 ? 柱状图(条形图)基线 柱状图(条形图)应从为零的基线(y轴上的起始值)开始。...应该有目的地使用运动(不是装饰性地),表达不同状态和空间之间的联系。 运动应该是合理,平稳,反应灵敏,不会妨碍用户的使用。 ? 在此示例中,图表数据按天显示动态切换到按周显示。...用例包括: · 跟踪目标的当前进度 · 实时跟踪系统性能 操作类仪表板示例: · 跟踪呼叫中心的活动,例如呼叫音量,等待时间,呼叫长度或呼叫类型 · 监控在云端应用程序的运行状况 · 显示股市情况 ·

5K31
领券