算法基础
1、二分法查找
2、什么是大O标示法
3、旅行商问题:
有个旅行商要前往5个城市,问哪种方式旅程最短。
5个城市有120种计算方式,当随着城市的增多,旅行的方式成倍数递增。n个城市,n!种方式,100!种方案,等你计算出来,太阳都没了
4、数组和链表在内存中的存储方式;数组和
数组的下标为什么从0开始:0标示偏移量
5、栈的工作原理
6、递归
递归函数必备的2部分:基线条件,递归条件
基线条件:函数不在调用自己,从而避免无线循环
递归条件:递归条件下自己调用自己
7、分而治之(divide and conquer)
案例:一个农场主1680*640的地,要均匀的分成方块,且分的方块要尽可能的大
欧几里得算法
8、快速排序
1、长度小于2 的直接return
2、找基准值
3、左边的基准值(数组),基准值,右边的基准值(数组)
4、对左边/右边的数据再次进行排序
9、散列表(dict)
散列表的填装因子 :散列表包含的元素数/散列的位置总数
10、广度优先搜索
种植了一个芒果树,在朋友圈中寻找经销商
实现广度优先搜索的数据结构:队列
树是一种特殊的图
11、狄克斯特拉算法【没有负权边的时候成立】
找出A到B耗时最短的路径
广度优先搜索:发现2点之间的最短距离=段数最少
狄克斯特拉算法:每段分配权重,权重最小的路径
有负权边的时候–贝尔曼-福德算法
1783

被折叠的 条评论
为什么被折叠?



