![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法基础
coderate
这个作者很懒,什么都没留下…
展开
-
快速排序
平均时间复杂度为O(nlogn),非稳定排序。实现如下:def quick_sort(data): res = [val for val in data] print res quick_sort_imp(res, 0, len(data) - 1) return resdef quick_sort_imp(data, start, end): ...原创 2018-04-23 13:20:01 · 133 阅读 · 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 · 90 阅读 · 0 评论 -
排列问题题解
1. 无重复元素的排列def permutation_without_repeated_element(data): res, item = [], [] used = [False for _ in xrange(len(data))] helper(data, res, item, used) return resdef helper(data, ...原创 2018-04-23 18:45:25 · 207 阅读 · 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 · 261 阅读 · 0 评论