社区
C语言
帖子详情
数组赋值优化
zhaoxiaozhu
2009-07-20 03:08:57
我给一个二维数组例如:byte B[50][5]={
{0,0,1,2,4},{。。。},。。。共50个,(。。。)
}
发现这么做在测试代码性能的时候很耗时,那我应该怎么优化呢?
...全文
151
10
打赏
收藏
数组赋值优化
我给一个二维数组例如:byte B[50][5]={ {0,0,1,2,4},{。。。},。。。共50个,(。。。) } 发现这么做在测试代码性能的时候很耗时,那我应该怎么优化呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
飞天御剑流
2009-07-21
打赏
举报
回复
[Quote=引用 4 楼 zhaoxiaozhu 的回复:]
引用 3 楼 zhaoxiaozhu 的回复:
引用 2 楼 lee673 的回复:
建议楼主看看有关稀疏矩阵的东西,应该有很好的解决办法的。。。。
稀疏矩阵??? 不明白
我是要给这个二维数组赋值,结果发现这么赋值后,测试代码性能,这里好耗时的,该怎么办呀?
[/Quote]
你应该是用了一个二重循环去赋值啊吧?
如果所赋予的值有规律的话,可以使用memcpy或者memmove复制整块内存。
ies_sweet
2009-07-21
打赏
举报
回复
[Quote=引用 1 楼 nio96 的回复:]
定义成全局变量?预编译进去?
[/Quote]
将造成可执行程序庞大
ies_sweet
2009-07-21
打赏
举报
回复
请楼主给出具体的应用
比如这个2维数组是些什么数据,用这些数据来做什么
楼主使用的平台等等
以及硬件资源的限制
把具体应用说出来
从设计和算法上解决
否则无法得到好的想法的
allen1986
2009-07-20
打赏
举报
回复
每次赋的值都不一样吗?用的时候是怎么用的訥。我是 想能不能按一维数组赋值的方法给他一次赋250个元素,然后,要是用到个别值得话,可以根据计算它的 位置来取值。这样做是因为一维数组的寻址速度快于二维数组。一维数组是顺序存下来,二维数组要进行多次跳转。
jyokeni
2009-07-20
打赏
举报
回复
楼主是怎么个赋值法,看看可不可以换个算法来赋值试试。
还可以给变量加个volitile 限制下,也能快一点点吧
zhaoxiaozhu
2009-07-20
打赏
举报
回复
[Quote=引用 1 楼 nio96 的回复:]
定义成全局变量?预编译进去?
[/Quote]
因为多次调用这个函数,这个二维数组就被多次赋值,很耗时
定义成全局变量这样是可以,可是又比较耗内存,该怎么办?
有没有两全其美的办法?
zhaoxiaozhu
2009-07-20
打赏
举报
回复
[Quote=引用 3 楼 zhaoxiaozhu 的回复:]
引用 2 楼 lee673 的回复:
建议楼主看看有关稀疏矩阵的东西,应该有很好的解决办法的。。。。
稀疏矩阵??? 不明白
[/Quote]
我是要给这个二维数组赋值,结果发现这么赋值后,测试代码性能,这里好耗时的,该怎么办呀?
zhaoxiaozhu
2009-07-20
打赏
举报
回复
[Quote=引用 2 楼 lee673 的回复:]
建议楼主看看有关稀疏矩阵的东西,应该有很好的解决办法的。。。。
[/Quote]
稀疏矩阵??? 不明白
lee673
2009-07-20
打赏
举报
回复
建议楼主看看有关稀疏矩阵的东西,应该有很好的解决办法的。。。。
Nio96
2009-07-20
打赏
举报
回复
定义成全局变量?预编译进去?
Go
数组
、字符串、切片原理和
优化
数组
1、
赋值
和传参
数组
本身的
赋值
和传参都是以整体复制的方式处理的,所以为深拷贝,在函数内对
数组
进行操作,不会影响原
数组
。 package main import ( fmt ) func forRange(a [3]int){ for k,v := range a{ fmt.Printf(%d:%d\n, k, v) } a[2] = 9 fmt.Println(a) } func main() { a := [...]int{5, 2, 3} fmt.Println(a) forRange(a) fmt.Println(a) } [5 2 3] 0:5
Matlab初始化
数组
的意义与实战案例分析,以及
优化
策略.pdf
# Matlab 初始化
数组
的意义与实战案例分析,以及
优化
策略 在 Matlab 中,初始化
数组
是一个常见的操作,它可以为
数组
赋初值,使得程序更加规范化和易于维护。本文将介绍
数组
初始化的意义、实战案例分析以及
优化
策略。 ##
数组
初始化的意义 在 Matlab 中,
数组
初始化主要有以下几个作用: 1. 赋初值:初始化
数组
可以为
数组
元素赋初值,使得程序更加规范化和易于维护。 2. 提高程序效率:在程序中使用未初始化的
数组
,会导致 Matlab 在内存中分配一块空间,并为
数组
元素赋默认值。而初始化
数组
则可以提高程序效率,减少不必要的内存分配和
赋值
操作,从而提高程序的运行速度。 3. 避免程序错误:如果未初始化的
数组
在程序中被引用,可能会导致程序出现错误。而初始化
数组
则可以避免这种情况发生。 ## 实战案例分析 下面是一个实战案例,演示了如何使用 Matlab 初始化
数组
: ``` % 初始化一个 3 行 4 列的矩阵 A = [1,2,3,4;5,6,7,8;9,10,11,12]; disp(A); ``` 上述代码中,使用了方括号将矩阵的元素括起来,并使用分号将每一行
java小组成员添加程序
4个小组成员,可以进行删除,修改,增加等功能。主要使用条件判断和二维
数组
的
赋值
和二维
数组
的遍历,对知识进行了一个简单的归纳,下次
优化
,争取把异常捕获等知识点融合进入这个小程序(*这个程序还可以进行
优化
)。下次添加功能为:把二维
数组
中的数据存入到文件中。
客户端js性能
优化
小技巧整理
下面是一些关于客户端JS性能的一些
优化
的小技巧: 1. 关于JS的循环,循环是一种常用的流程控制。JS提供了三种循环:for(;;)、while()、for(in)。在这三种循环中 for(in)的效率最差,因为它需要查询Hash键,因此应尽量少用for(in)循环,for(;;)、while()循环的性能基本持平。当然,推荐使用for循环,如果循环变量递增或递减,不要单独对循环变量
赋值
,而应该使用嵌套的++或–运算符。 2. 如果需要遍历
数组
,应该先缓存
数组
长度var len=arr.length; for(i=0;i<len;i++),将
数组
长度放入局部变量中,避免多次查询
数组
长度。 3.
Matlab高效编程:
优化
数组
赋值
在Matlab中,一个
数组
在被定义后,必须明确规定其大小。因此,如果在程序中需要多次对同一个
数组
进行
赋值
,则可以考虑在开始前预分配
数组
所需的内存空间。但是,在处理大规模
数组
时,不当的
赋值
方法会导致程序效率低下,影响计算速度。因此,如何
优化
数组
的
赋值
方法是提高程序运行效率的重要技巧之一。在本文中,我们将介绍几种常见的
优化
数组
赋值
方法,并给出相应的代码实现。但是,这种方法会将
数组
A的每一行都复制一遍向量x,导致程序效率低下。综上所述,针对不同的情况,采取不同的
数组
赋值
方法能够有效地提高Matlab程序的效率。
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章