结构如何影响效率?
指针使程序更高效,更快速。 但结构如何影响程序的效率? 它使它更快吗? 仅仅是为了代码的可读性,还是为了什么? 我可以举一个例子说明它是如何做到的?
结构与效率无关,它们用于抽象。 它们允许您将所有相关数据保存在一起,并以单一名称引用。
虽然有一些与性能相关的功能。 如果将所有数据都存放在一个结构中,则可以将指向该结构的指针作为函数的一个参数传递。 这比向函数传递大量单独的参数要好,因为每个值都是该结构的成员。 但这不是我们使用结构的主要原因,它主要是一个额外的好处。
指针只是指向一个内存地址,它们与效率和速度无关(它只是一个变量,它存储了某些地址,这些地址对于某些指令的执行是必需/有用的,仅此而已)是,但数据结构影响程序的效率/代码,它们可以增加/减少算法的时间复杂度和空间复杂度,最终还可以提高代码的执行速度(在这个过程中你正在执行算法。)
例如,让我们以数组和链表为例
数组:在内存中按顺序分配的一定数量的空间
链表:在内存中随机分配一些空间,但通过指针连接
在所有情况下都可以使用(假设没有太多的空间分配)。 但是因为数组是连续的分配检索比链表中的随机分配更快(每次获得下一个分配的块的地址,然后获取数据)
从而提高代码的速度和效率
有很多这样的例子可以证明为什么数据结构更重要(如果它们并不那么重要,为什么要设计新的算法,主要是为什么你要学习它们)
链接引用,什么是较少知道但有用的数据结构?
指针在程序的效率和执行时间/速度上不做任何贡献。 结构提供了一种以相同名称存储不同变量的方法。 这些变量可以是不同的类型,每个变量都有一个名称用于从结构中选择它。 例如,如果你想存储关于学生的数据,它可能由Student_Id,Name,Sex,School,Address等组成,其中Student_Id是int,Name是字符串,Sex是char(M / F)等,但所有变量都是在'单个记忆块'中将它们组合在一起作为单个结构'学生'。 因此,每次您需要获取或更新学生数据时,您只需要处理结构化数据。 现在想象一下,如果您尝试单独存储所有这些int,char,char []变量并分别更新它们,您可能会面临多大的问题。 因为您需要为每个学生的记录更新不同记忆位置上的所有内容。
但是如果你考虑数据结构来把你的整个数据结构化为抽象数据类型,你可以选择不同类型的链表,树,图等或者数组实现,那么你的算法在决定程序的时间和空间复杂性方面起着至关重要的作用。 所以从这个意义上说,你可以使你的程序更高效。
链接地址: http://www.djcxy.com/p/39855.html