陋室铭
永远也不要停下学习的脚步(大道至简至易)

posts - 2169,comments - 570,views - 413万

注:本文作者水平有限,只是照自己理解写了一些东西,观点可能是错误的,而且本文的逻辑性也不是很好,请大家见谅,如果感到本文还有可取之处、可改的价值、请大家指教。

    各种数据结构都有自己的算法,今天想清楚了一件事,为什么程序=数据结构 +算法。
    说白了就是各种数据结构现在都有自己的算法,数据结构就是计算机存储数据的结构(如哈希表,这种存储结构丽利于快速检索和存储数据),算法就是来操作这些数据结构的(如遍历算法),也就是各种数据结构的设计,是以算法的实现为依据的(就是可操作这种数据结构)

    因为我最近学习XML,所以这里顺带提一下 XML也是一种数据结构,操作XML的各种方法就是算法,指针也是为了操作数据结构而创作出来的。

    然后我们再推广到现实中的所有事物,都可以总结出一种或多种存储他们信息的结构,再设计出操作这种结构的方法(算法),中间就要考虑到时间复杂度O(X)。

    而面向对象的编程中,类实际也是一种数据结构,它是以现实事物为模板的一种数据结构,然后就产生了操作类的各种算法。

    这里想一下。再C语言中struct(结构),本身就是编程语言中最根本的数据结构吗?

    计算机存储器(内存、硬盘等)存储数据本身也是结构化存储,而操作他们中数据的原理就是多种算法。

    但这其中有2个目的是不能变的
        1.找到要操作的东西(典型为指针)
        2.操作找到的东西

    中间涉及到的是这个东西是用什么方式(数据结构)存在计算机中,然后选择找的方法(算法)找到以后操作的方法(还是算法)。

    接下来轮到程序员:
    我们的类、结构、数组、等等,都是种数据结构,类的实例存储在计算机中(一般为内存),存储的方式也是种数据结构(内存一般为堆栈式存储),每个类的实例在内存中分配资源。

    归根结底,计算机最根本的就是数据,所以产生了存储数据的各种结构(以不同形式存储数据,如链表、堆栈等)然后,又产生了操作这些存储数据的结构的各种算法。

    所以,到了最后,我们应该把所有的东西看作是数据所组成的数据结构,而我们要做的就是要写出操作他们的方法。

    呵呵,现在感觉比面向对象思想又向本源前进了一步。

    不过,我自己是个面向对象还没有怎么搞懂的程序员、先学跑并不一定好、基础!基础!基础!没有它什么都是瞎扯。

    写到这,做为面向对象的程序员我也想到了很多问题

    1.作为应用程序的各种架构。也是出于一种整体考虑的数据结构?由不同的数据结构组成?
    2.设计模式(代码重用性)也是一种复用性数据结构的考虑?

    小结:
    计算机最根本的数据是0和1,通过不同的组合,和组合后的不同解释,把它们转化为图片,影音,界面等。

    “源”这个字太奇妙了,体现了中国人把握事物根本的能力,万物莫不有源,我们一定要透过现象看到事物的本质,纵观全局。最终把握事物的所有的“源”。

posted on   宏宇  阅读(1650)  评论(3编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
< 2007年3月 >
25 26 27 28 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
1 2 3 4 5 6 7

点击右上角即可分享
微信分享提示