04 2020 档案

摘要:算法的不同会导致其运行时间产生大幅变化。使用相同的算法,输入数据的量不同,运行时间也会不同。比如,对10 个数字排序和对1 000 000 个数字排序,很容易就想到后者的运行时间更长。 那么,实际上运行时间会长多少呢?后者是前者的100 倍,还是1 000 000 倍?就像这样,我们不光要理解不同算 阅读全文
posted @ 2020-04-08 18:10 laolaotongg
摘要:能解决排序问题的算法不止选择排序一个。那么,当有多个算法都可以解决同一个问题时,我们该如何选择呢? 在算法的评判上,考量的标准也各有不同。 比如,简单的算法对人来说易于理解,也容易被写成程序,而在运行过程中不需要耗费太多空间资源的算法,就十分适用于内存小的计算机。不过,一般来说我们最为重视的是算法的 阅读全文
posted @ 2020-04-08 18:00 laolaotongg
摘要:算法是计算或者解决问题的步骤,要想用计算机解决特定的问题,就要遵循算法。 特定问题多种多样,比如“将随意排列的数字按从小到大的顺序重新排列”,“寻找出发点到目的地的最短路径”,等等。 算法的步骤都是用数学方式来描述的,所以十分明确。算法和程序有些相似,区别在于程序是以计算机能够理解的编程语言编写而成 阅读全文
posted @ 2020-04-08 17:53 laolaotongg
摘要:Python3可以用于开发金融投资和量化分析方面的软件,需要学习把金融数据的处理和投资分析技术通过编写程序实现、通过编写程序完成K线图形和技术指标图形的程序绘制与框架开发,以及Tkinter窗口布局设计等, 要学会独立搭建自己的金融投资分析量化平台,能够真正运行Python 3量化投资分析平台。学习 阅读全文
posted @ 2020-04-08 00:40 laolaotongg
摘要:对比二分查找和线性查找的步数差异,发现二分查找的步数为O(log N),比线性查找的O(N)快得多。 大O记法能客观地衡量各种算法的时间复杂度,是比较算法的利器。 大O可以与其他常用的算法比较,如果通过大O 发现自己的算法比其他的要慢,就应该退一步,好好想想怎样优化它,才能使它变成更快的那种大O。 阅读全文
posted @ 2020-04-04 22:45 laolaotongg
摘要:线性查找并不总是O(N)的。当要找的元素在数组末尾,那确实是O(N)。但如果它在数组开头,1 步就能找到的话,那么技术上来说应该是O(1)。所以概括来说,线性查找的最好情况是O(1),最坏情况是O(N)。虽然大O可以用来表示给定算法的最好和最坏的情景,但若无特别说明,大O 记法一般都是指最坏情况。因 阅读全文
posted @ 2020-04-03 17:42 laolaotongg
摘要:影响算法性能的主要因素是其所需的步数。一个算法的步数并不是固定的。以线性查找为例,它的步数等于数组的元素数量。 如果数组有22 个元素,线性查找就需要22 步;如果数组有400 个元素,线性查找就需要400 步。 量化线性查找效率的更准确的方式应该是:对于具有N 个元素的数组,线性查找最多需要N步。 阅读全文
posted @ 2020-04-02 17:50 laolaotongg