二分法的一些应用
《数据结构与算法》--Python语言实现
之前也看了一些书籍推荐和评价,虽然这本书评分不高,也确实翻译有时候看的很费劲,逻辑代码习题什么的还是可以的
我觉得不管排序也好什么也好都是想要得到一个nlogn
1.测试元素唯一性
def uniquel1(S):
for j in range(len(S)):
for k in range(j+1,len(S):
if S[j] == S[k]:
return False
return True
这个算法是把S里面的元素每一个,都和序号在它后面的元素比较一遍,运行时间按比例增长就是(n-1)+(n-2)+...+2+1,所以是O(n2)
def uniquel2(S):
temp = sorted(S)
for j in range(1,len(temp)):
if temp[j-1] ==temp[j]:
return False
return True
利用内置函数,sorted排序是O(nlogn),循环运行时间是O(n)
2.