蓝桥杯第三级别——算法。
蓝桥杯的考察重点:加黑重点 (括号内了解)
算法:枚举、排序、搜索、计数、贪心、动态规划、图论、数论、博弈论、概率论、计算几何、字符串算法。(递归、二分查找、哈希算法、分治算法、回溯算法)
数据结构:数组、对象/结构、字符串、队列、栈、树、图、堆、平衡树/线段树、复杂数据结构、嵌套数据结构。(链表、散列表、二叉树、跳表、Trie树)
其它的:编程思维:
数学思维(公式计算)
计算思维(程序自动化+抽象过程)
计算机思维(不断试错)
随机模拟思维(大量随机点模拟)
模块化思维(功能拆分——化繁为简,分而治之,模块间松耦合,模块内紧耦合)
规则化思维(抽象过程为规则)
递归思维(函数内调用函数)
脚本自动化思维(数据和功能分离)
目录
算法复杂度
包括时间复杂度和空间复杂度。
对于程序需要优先考虑时间。Tn = O(f(n))。时间复杂度是对程序运行时间的估算。
计算:(超过2层循环的算法直接换思路,时间复杂度小于等于O(n**2))
选择最复杂的循环计算最高阶(包括递归调用,不包括其他循环和非循环)。
嵌套取乘积。O(N*N)
多数据规模。O(M+N)
例:
i = 1 while i <= n: i = i*2
i依次为1,2,4,8,16...2**i,直到2**i不大于n时停止。
2**i == n。i == log2(n)。
所以Tn = O