北京网站建设之C程序建设相关知识【续】

2022-05-11    分类: 网站建设

在《北京网站建设之C程序建设,企业网站建设》一文中创新互联为大家介绍了一下其中的三点,即1、选择合适的算法和数据结构,2、程序结构,3、使用尽量小的数据类型。因为C程序建设是一个非常庞大的体系,所以在接下来的内容中创新互联继续为大家介绍北京网站建设之C程序建设相关知识的另外三点,即4、以内存换速度的问题,5、优化数组的寻址,6、链表的优化。

大家在阅读北京网站建设之C程序建设的相关内容时如果遇到网站建设问题、企业网站建设问题、生物网站建设问题等所有与网站建设相关的问题都可以联系我们的在线客户进行咨询。




4、关于以内存换速度的问题
在C程序建设中内存和速度一直接程序员们无法兼顾的问题,大多数情况,速度同内存(或者是性能,比如说压缩性能什么的)是不可兼得的。目前C程序建设行业中程序加速的常用算法就是利用查表法来避免计算,这样原来的复杂计算用查表就可以解决了。如,在jpg有huffman码表,在YUV到RGB变换也有变换表。
这种做法虽然浪费了内存,但是速度即有了显著的提升。在数据库查询里面也有类似的方式,如将热点存储起来以加速查询。
5、优化数组的寻址
程序员在编写程序时,常常会使用一个一维数组a[M×N]来模拟二维数组a[N][M]的问题,在访问a[]一维数组的时写成a[j×M+i](对于a[j][i]),这就是一维数值的寻址。虽然,这样写是没有问题的,但是这样做后每个寻址语句j×M+i都要进行一次乘法运算。
二维数值的寻址则是不同的,二维数组要比(模拟该二维数组)一维数组寻址效率高。因为a[j][i]的寻址只是访问了指针数组得到j行的地址,然后再+i,是没有乘法运算的。下面从二维数组的结构来分析,二维数组的结构可以分为两部分:
①是一个指针数组,存储的是每一行的起始地址,这也就是为什么在a[N][M]中,a[j]是一个指针而不是a[j][0]数据的原因。

②是真正的M×N的连续数据块,这解释了为什么一个二维数组可以象一维数组那样寻址的原因。(即a[j][i]等同于(a[0])[j×M+i])


6、链表的优化问题


很多程序员在遇到链表问题时都会想“我们需要链表吗”的问题,虽然我们在编写一些耗时算法时采用了链表的形式,但是这样对内存的占用(似乎)少了,但是却忽略了速度。所以在这里创新互联建议:程序员在编写耗时大的代码时,尽可能不要采用链表!因为实际上采用链表并不能真正节省内存。

网站名称:北京网站建设之C程序建设相关知识【续】
文章转载:https://www.cdcxhl.com/news14/152014.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站建设