二分法的一些应用

《数据结构与算法》--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.

posted @ 2019-03-08 15:40  洛圣熙  阅读(316)  评论(0编辑  收藏  举报