邓公总结课
作者:互联网
python list
python 语法一般从list开始讲起。
list 插入、删除元素比较容易,查找比较慢。
两种对list进行翻转操作。
def reverse_1(L){
lo,hi = 0, len(L)-1 #从首末元素开始 平行赋值
while lo<hi #依次令对称元素
L[lo],L[hi] = L[hi], L[lo] #互换,然后
lo,hi = lo+1,hi-1 #考察下一对元素
return L
}
def reverse_1(L){
for i in range(len(L)):
L.insert(i, L.POP() )
return L
}
实际上python的list列表底层是用向量搭建的。因此第二种种方法是n方,第一种是n
复杂度下界—如何判断
decision tree 代数判定树 最简单的是 比较判定树
一般的测度所说的是指针对worst-case
worst-case optimal
对于CBA 基于比较的算法 最优的复杂度 是nlogn
因为叶子节点一共有n!种,取log后,变为n的n次方(log下与n!同阶)取log
但是桶排序不是基于比较的算法,可以用优于CBA 可以达到n的复杂度
reduction 规约 lower-bound
例子排序算法可以规约于排序问题
A问题规约于B问题(与中文传统的表述方式不同)
元素唯一性问题(E.U.) <= 最近邻 问题 (cloest pair)。 最好超不过 nlogn
元素唯一性问题,最优算法nlogn
利用距离来算元素是否唯一。
nlogn sorting <= R.B.M. red&blue matching 而且连线不可以相交
注意R.B.M必定是存在的(可由计算几何证明)
如何对应呢?
set disjointness nlogn <= Diameter(点集中最长的两点)
set disjointness 二路归并。用nlogn 确定是否有相同的元素。相同的点会变为diameter。只要判断这个点是否重合。
标签:总结,log,python,复杂度,元素,list,邓公,nlogn 来源: https://blog.csdn.net/weixin_43829465/article/details/100063602