注:本文作者水平有限,只是照自己理解写了一些东西,观点可能是错误的,而且本文的逻辑性也不是很好,请大家见谅,如果感到本文还有可取之处、可改的价值、请大家指教。
各种数据结构都有自己的算法,今天想清楚了一件事,为什么程序=数据结构 +算法。
说白了就是各种数据结构现在都有自己的算法,数据结构就是计算机存储数据的结构(如哈希表,这种存储结构丽利于快速检索和存储数据),算法就是来操作这些数据结构的(如遍历算法),也就是各种数据结构的设计,是以算法的实现为依据的(就是可操作这种数据结构)
因为我最近学习XML,所以这里顺带提一下 XML也是一种数据结构,操作XML的各种方法就是算法,指针也是为了操作数据结构而创作出来的。
然后我们再推广到现实中的所有事物,都可以总结出一种或多种存储他们信息的结构,再设计出操作这种结构的方法(算法),中间就要考虑到时间复杂度O(X)。
而面向对象的编程中,类实际也是一种数据结构,它是以现实事物为模板的一种数据结构,然后就产生了操作类的各种算法。
这里想一下。再C语言中struct(结构),本身就是编程语言中最根本的数据结构吗?
计算机存储器(内存、硬盘等)存储数据本身也是结构化存储,而操作他们中数据的原理就是多种算法。
但这其中有2个目的是不能变的
1.找到要操作的东西(典型为指针)
2.操作找到的东西
中间涉及到的是这个东西是用什么方式(数据结构)存在计算机中,然后选择找的方法(算法)找到以后操作的方法(还是算法)。
接下来轮到程序员:
我们的类、结构、数组、等等,都是种数据结构,类的实例存储在计算机中(一般为内存),存储的方式也是种数据结构(内存一般为堆栈式存储),每个类的实例在内存中分配资源。
归根结底,计算机最根本的就是数据,所以产生了存储数据的各种结构(以不同形式存储数据,如链表、堆栈等)然后,又产生了操作这些存储数据的结构的各种算法。
所以,到了最后,我们应该把所有的东西看作是数据所组成的数据结构,而我们要做的就是要写出操作他们的方法。
呵呵,现在感觉比面向对象思想又向本源前进了一步。
不过,我自己是个面向对象还没有怎么搞懂的程序员、先学跑并不一定好、基础!基础!基础!没有它什么都是瞎扯。
写到这,做为面向对象的程序员我也想到了很多问题
1.作为应用程序的各种架构。也是出于一种整体考虑的数据结构?由不同的数据结构组成?
2.设计模式(代码重用性)也是一种复用性数据结构的考虑?
小结:
计算机最根本的数据是0和1,通过不同的组合,和组合后的不同解释,把它们转化为图片,影音,界面等。
“源”这个字太奇妙了,体现了中国人把握事物根本的能力,万物莫不有源,我们一定要透过现象看到事物的本质,纵观全局。最终把握事物的所有的“源”。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现