• 读世界是数字的(4)


    关于软件

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

    关于算法

    算法的关键属性是效率,即对于给定的数据量,它的处理速度怎么样?花费的时间大概是多少?书上介绍了以下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很大时,这个数也不小,但是相比于选择排序而言就好很多了。

    关于编程与编程语言

    • 汇编语言

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

    • 高级语言


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

  • 相关阅读:
    Remote API(RAPI)之 文件管理
    vue前端框架

    托马斯彩色回旋
    VUE?
    cookie与session
    ajax前后端分离
    djangoIII
    Django少年
    django三板斧
  • 原文地址:https://www.cnblogs.com/rafell/p/6195234.html
Copyright © 2020-2023  润新知