能让计算机完成各种任务的指令序列通称软件

关于算法

算法的关键属性是效率,即对于给定的数据量,它的处理速度怎么样?花费的时间大概是多少?书上介绍了以下3种算法:

  • 线性算法

即计算时间与数据量成正比,当对某些数据的基本操作是相同的,那么工作量(计算时间)会与数据量同比例增加

  • 二分法

对于线性算法的改进,如果在最开始数据是按照一定的规则排列的,那么就可以大大节省时间。

例如若有1000个数据,那么为了找到其中任何一个大概找10次左右(因为2的10次方等于1024;若有2000个数据(比1000翻了一倍),大概找11次左右(因为2的11次方的2048);若有1,000,000个数据,则大概找20次;

好处很显然,数据量的大幅增长只会带来工作量的微小增长。

2的幂次方 10的幂次方
2的10次方=1024 10的3次方=1000
2的20次方=1,048,576 10的6次方=1,000,000
2的30次方=1,073,741,824 10的9次方=1,000,000,000
2的40次方=1,099,511,627,776 10的12次方=1,000,000,000,000
2的50次方=1,125,899,906,842,624 10的15次方=1,000,000,000,000,000
  • 排序

选择排序:每个数据都去与未和自己比较的数据进行比较,共需要N(N+1)/2,但是由这个式子可以发现工作量的增长比数据量的增长要快得多(特别是当数据很大时)

快速排序:由二分法可以知道,任意一个数值被找到需要logN次(以2为底数),所以对于N个数据而言,就需要NlogN次。虽然当N很大时,这个数也不小,但是相比于选择排序而言就好很多了。

关于编程与编程语言

  • 汇编语言

与具体的计算机有关,对于不同的处理器,就算执行同一件事,但是写出来的语句也是不同的,这是很麻烦的。

  • 高级语言

读世界是数字的(4)
从上图可明显得知,尽管编译的结果并不相同,但是对于程序员而言写的句子是一样的(例如就是Z=X+Y)

相关文章:

  • 2022-02-24
  • 2022-01-14
  • 2021-11-01
  • 2021-08-31
  • 2021-12-06
  • 2021-05-25
猜你喜欢
  • 2021-10-08
  • 2021-07-29
  • 2022-02-25
  • 2022-02-10
  • 2021-05-25
  • 2021-10-29
  • 2022-01-04
相关资源
相似解决方案