摘要: 1.将n个元素从大到小排序后,选择第k个大的元素 2.泡排序前k个元素,后面的元素逐个和第k个元素比较,如果小于则忽略,如果大于则加入到正确的位置并移除最后一个元素 3.时间对比 方法一: N | 10 | 100 | 1000 | 5000 | 10000 | 20000 | T | 0.0 | 阅读全文
posted @ 2016-11-13 20:51 小黄人python 阅读(384) 评论(0) 推荐(0) 编辑
摘要: #!/usr/bin/env python #coding -*- utf:8 -*- #二分查找#时间复杂度O(logn)#一个时间常量O(1)将问题的规模缩小一半,则O(logn) import random def binary_search(arraya, x, N): low = 0 high = N-1 notfound = -1 while l... 阅读全文
posted @ 2016-11-13 20:12 小黄人python 阅读(341) 评论(0) 推荐(0) 编辑
摘要: #欧几里得求最大公约数 #!/usr/bin/env python #coding -*- utf:8 -*- #iteration def gcd(a,b): if b==0: return a else: return gcd(b, remainder(a, b)) #此方法仅仅书用于a和b都为正数 def gcd_1(a,b): ... 阅读全文
posted @ 2016-11-13 19:53 小黄人python 阅读(4812) 评论(0) 推荐(0) 编辑
摘要: 分别用迭代方法和递归方法实现求幂迭代方法的时间复杂度为O(n),空间复杂度为O(1)递归方法1的时间复杂度为O(logn),空间复杂度为O(logn)递归方法2的时间复杂度为O(n),空间复杂度为O(n)#!/usr/bin/env python #coding -*- utf:8 -*- def pow_1(x, n, choice): if choice==0: r... 阅读全文
posted @ 2016-11-13 19:36 小黄人python 阅读(6623) 评论(1) 推荐(0) 编辑