数据结构(一)

     无论是什么语言,归根结底它还是电平的变化,虽然做软件不需要深入了解到那么深入,但是我们需要了解程序的本质。

     程序是什么,程序=数据结构+算法;什么叫算法,算法简单说就是计算机的操作;什么叫数据结构,数据结构就是计算机操作对象。

     我是一个高要求的人,所以如果同样希望做出更好的程序,不满足于现在的语言的同学们可以和我一起讨论。本系列文章将从最基本的数据结构讨论起,直到常用的算法为止。最基本会包括六度空间算法,红黑树等等。

      闲话不多说。我们进入正题。

      这一个部分我想总结一下关于算法设计的基本目标和算法分析。

      算法的基本目标 是什么?各个地方的说法总结各种什么性什么性的我不喜欢。

      第一、算法就是用来解决问题的。所以它最基本的就是要能够解决问题。

      第二、算法就是用来提高效率的。所以它要能够在更小的内存上、用更快的速度去解决问题。至于如何平衡空间和时间这是根据实际情况考虑的问题。

      第三、算法能够提高运行的能力。简单说两个算法,一个出错了能跑回来,一个出错就当机,当然我们想要选择这个能跑回来的。

      至于书本上说的可读性等等,都是相对的,如果连基础的数学运算都没法理解,如何理解一个高等工程函数?如果能理解高等工程函数,还有基础函数不理解的么?

      然后就是关于算法分析 了。仅仅从程序上看算法的效率是由他的运行时间决定的。比如说循环次数,分支等等。但是这里在实际中存在另一种可能性,就是使用率 。我认为,使用率去决定算法的最终实现,在实际中的效果会比其他的分析方法更加的高效。所以我们要在成为一个好的程序员的同时成为某一个领域(比如金融、比如医药)方面的能手。

      当然基本的分析方法还是要谈谈:

      1.时间分析(效率分析):分析基本运算次数的数量级。

      2.空间分析:考虑最坏的情况。

      在现在商务中,由于存储的价格降低,我们可以认为空间是无限大的,然后去设计算法。而且我们还有云计算。

 

     综上所述,我们设计一个算法,一个程序,基本需要考虑的问题:

     1.团队的知识能力。也就是说能看懂哪个层次的算法。

     2.程序面向的主要使用者的使用方式。

     3.软硬件资源。到底是空间更多,还是计算能力更快,合理利用这些资源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值