讲述了经典计算机算法:
1.排序算法中的冒泡(相邻不断比较)和插入(扑克牌插入的例子),冯诺依曼的归并(递归),将自己带入当时的场景去从无到有推演,聪明的脑袋让人惊叹。再到后面改进的堆排序(in-place characteristic不需要额外空间)和快排(节省空间和执行效率提升)。尽管优化带来改进,但是存在不稳定性(和原始数据的序列状态有关),依旧无法替代归并排序。
2.在不同的场景下(设定边界条件),选择合适的算法。比如Python中的默认排序算法Timsort,是一种混合了归并排序和插入排序的算法,它在处理已经部分有序的数据时表现出色。
3.掌握从大到小,自顶向下拆解问题,擅用递归方式的计算机思维。人习惯于自下而上,从局部到一般的总结规律,是一种递推思维。斐波那契数列(台阶数),汉诺塔,八皇后问题。
4.信息压缩的原则:高频信息使用短编码,低频信息长编码(将资源用在最需要之处)。
5.编码要兼顾数字的动态范围和精度。使用科学计数法(1位表示正负号,11位表示数字动态范围,52位表示精度)。黄金分割问题、白鼠实验问题都是转换为二进制编码,获得快速解决思路。
6.分治思想:分组比赛和大矩阵计算;MapReduce。
相关推荐
© 2023-2025 百科书库. All Rights Reserved.
发表评价