算法基础
coderate
这个作者很懒,什么都没留下…
展开
-
快速排序
平均时间复杂度为O(nlogn),非稳定排序。实现如下: def quick_sort(data): res = [val for val in data] print res quick_sort_imp(res, 0, len(data) - 1) return res def quick_sort_imp(data, start, end): ...原创 2018-04-23 13:20:01 · 138 阅读 · 0 评论 -
二分查找
二分查找的前提是数组有序,具体实现为: def binary_search(data, target): left, right = 0, len(data) - 1 while left <= right: mid = left + (right - left + 1) / 2 if data[mid] == target: ...原创 2018-04-24 09:52:06 · 92 阅读 · 0 评论 -
排列问题题解
1. 无重复元素的排列 def permutation_without_repeated_element(data): res, item = [], [] used = [False for _ in xrange(len(data))] helper(data, res, item, used) return res def helper(data, ...原创 2018-04-23 18:45:25 · 223 阅读 · 0 评论 -
二叉树三种遍历的递归和非递归实现
1. 前序遍历 1.1 递归实现 def pre_order(root): if root is None: return print(root.val) pre_order(root.left) pre_order(root.right) 1.2 非递归实现 def pre_order(root): stack = [] ...原创 2018-06-28 19:15:19 · 264 阅读 · 0 评论