2 u012829428 u012829428 于 2017.01.04 14:18 提问

C语言两种生成线性数据数组哪种计算快

第一种
A[0]=a;
A[i]=A[i-1]+b;
第二种
A[i]=a+i*b;

3个回答

tang_cheng
tang_cheng   2017.01.04 14:36

当然是第二种快,第一种会生成大量的读写间接地址访问的操作。第二种的a,b是临时变量,优化的好的话,会直接用寄存器进行运算。

Tiger_Zhao
Tiger_Zhao   Rxr 2017.01.04 14:29

可以认为是一样的效率。

u010136832
u010136832   2017.01.04 14:39

从某种层面来讲,这两种方式对一个数组的成员的赋值从效率上市一样的,但是如果真的需要找出点不一样的话,还是第二种快,因为第一种取A[i-1]其实是
多了一个寻址的过程。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C语言中伪随机数生成方法
<br /><br />-----------------------------------------<br />原理<br /><br />C语言中伪随机数生成算法实际上是采用了"线性同余法”。具体的计算如下:<br /><br />Xi = (Xi-1 * A + C ) mod M <br /><br />其中A,C,M都是常数(一般会取质数)。当C=0时,叫做乘同余法。引出一个概念叫seed,它会被作为X0被代入上式中,然后每次调用rand()函数都会用上一次产生的随机值来生成新的随机值。可以看
数据结构之数组(C语言实现)
数组是大家很熟悉的一种数据类型,而且在我们的程序设计中也应用非常广泛。这里以抽象数据类型的形式讨论数组的定义和实现。一、数组的定义假设n维数组中含有第i维的长度为b(i),则数组的总长度为b(0) *b(1)*...*b(n-1),每个元素都受着n个关系的约束。在每个关系中元素a(j1,j2,...,jn) (0<=jn<=b(i)-2)都有一个直接后继元素。因此,就单个关系而言,这n个关系仍然是线
c语言--关于数组与指针的一些基本运算
一.sizeof()的有关运算1.知识:当数组名a单独放在sizeof()内部(即 sizeof(a))时,a表示整个数组;当数组名a单独放在&amp;amp;后面时(即&amp;amp;a),a表示整个数组;其余的a都表示数组a首元素的地址;&amp;amp;a,表示数组a的地址,其实是a首元素的地址,一个整形大小为4个字节,一个字符型大小为1个字节2.相关计算include&amp;lt;stdio.h&amp;gt; int ma...
插入删除,链表真的比数组快嘛?
今天看到吧友发了个帖子,叫 想编写优美的java代码格式要记住这几条规则 其中有一条,叫做 ArrayList底层是使用数组实现的,因此随机读取数据会比LinkedList快很多,而LinkedList是使用链表实现的,新增和删除数据的速度比ArrayList快不少。 这句话当然木有问题啦,在提出帖子标题的时候,楼主也想骂自己是逗比。不过想想,似乎在日常写代码的时候,伴随“新增和删除
c语言判断语句if(n==1)与if(1==n)的区别
下面是C语言中两种if语句判断方式。请问哪种写法更好?为什么? int n; if (n == 10) // 第一种判断方式 if (10 == n) // 第二种判断方式 首先,看看效率上有没有区别 if (i == 1) 004014CF cmp dword ptr [ebp-4],1
c语言实现最简单的哈希表(开放地址线性探测法)
运行结果:
汉字点阵数组生成工具(C语言)
本工具适用于单板单片机(STM32、C51等)开发中经常用到的点阵数组的自动生成。 发现网上的很多制作汉字点阵的工具经常会被某些杀毒软件报木马病毒,挺吓人的,于是使用自己熟悉的windows编程工具,利用字摸提取原理做了一个点阵数组生成的小工具,可以将windows系统的各种字体转化为常用的24*24或33*32点阵数组。现把这个小工具上传上来,供大家下载使用,自我感觉比原来的好用。由于本人水平有限,错误在所难免,如果各位发现错误或需要改进的地方,欢迎跟帖,以便不断改进完善。
数值作业:最小二乘法进行线性拟合之C语言代码
作图法求出直线的斜率a和截据b,可以确定这条直线所对应的经验公式,但用作图法拟合直线时,由于作图连线有较大的随意性,尤其在测量数据比较分散时,对同一组测量数据,不同的人去处理,所得结果有差异,因此是一种粗略的数据处理方法,求出的a和b误差较大。用最小二乘法拟合直线处理数据时,任何人去处理同一组数据,只要处理过程没有错误,得到的斜率a和截据b是唯一的。 最小二乘法就是将一组符合Y=a+bX关系的测
用c语言实现的稀疏矩阵基本操作
typedef struct { int i,j;//该非零元素的行下标和列下标 ElemType e; }Triple; typedef struct { Triple data[MAXSIZE+1];//非零元三元组表,data[0]未用 int mu,nu,tu;//矩阵的行数、列数和非零元个数 }TSMatrix; ……………………
C语言版的线性回归分析函数
前几天,清理出一些十年以前DOS下的程序及代码,看来目前也没什么用了,想打个包刻在光碟上,却发现有些代码现在可能还能起作用,其中就有计算一元回归和多元回归的代码,一看代码文件时间,居然是1993年的,于是稍作整理,存放在这,分析虽不十分完整,但一般应用是没问题的,最起码,可提供给那些刚学C的学生们参考。先看看一元线性回归函数代码: // 求线性回归方程:Y = a +