![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法导论
Dawang_0v0
这个作者很懒,什么都没留下…
展开
-
插入排序 @ Python
快速排序 @ Python# _*_ coding: utf-8 _*_import random as rddef insertion_sort(A): ''' :param A: list of number :return: list of number 从小到大排序 ''' size = len(A) i = 1 while原创 2017-08-23 20:22:45 · 355 阅读 · 0 评论 -
归并排序 @ Python
归并排序 @ Pythondef merge_sort(A): length = len(A) if length <= 1: return A if length == 2: if A[0] > A[1]: temp = A[0] A[0] = A[1] A[1] = t原创 2017-08-25 08:55:29 · 425 阅读 · 0 评论 -
算法复杂度分析符号θ
算法导论符号θ\theta在算法中最常见的符号是 θ\theta 符号, 对于公式来说,就是去掉低阶项,忽略高阶项前的常数因子, 例如公式 3n3+90n2−5n+234=θ(n3)3n^3 + 90n^2 -5n + 234 = \theta (n^3)也就是说当n⟶∞n\longrightarrow\infty的时候,低阶项和常数项将无法动摇函数式的结果 例如θ(n2)<θ(n3)\t原创 2017-08-24 10:20:42 · 1520 阅读 · 0 评论 -
快速排序 @ Python
快速排序 @ Pythonimport random as rddef quicksort(arr): if len(arr) <= 1: return arr pivot = arr[len(arr) / 2] left = [x for x in arr if x < pivot] middle = [x for x in arr if x ==原创 2017-08-25 17:53:44 · 251 阅读 · 0 评论 -
二叉树 @ Python
二叉树 @ Python# _*_coding:utf-8_*_# 空节点class TreeNode(object): def __init__(self): self.data = '#' self.left_child = None self.right_child = Noneclass Tree(object): def原创 2017-09-05 08:10:19 · 276 阅读 · 0 评论 -
算法复杂度
算法复杂度 T(n) 通常表示最坏情况分析(worst case): 在输入规模为n时 算法可能遇到的最复杂的情况 下所消耗的时间 T(n) 有时候也表示期望时间(average case): 再输入规模为n时 每种情况出现的概率 X 每种情况消耗的时间 概率的计算 假设一:均匀分布,每种情况的出现概率均相等 假设二: 其他的 (best case): 算法原创 2017-08-23 19:33:59 · 291 阅读 · 0 评论 -
算法符号Θ, O, Ω
Θ\Theta通常念做 thetaΘ(g(n))\Theta(g(n)):当且仅当存在常数 c1>0c_1>0 , c2>0c_2>0, n0>0n_0>0,使得对于所有的n≥n0n\geq n_0,有0≤c1g(n)≤f(n)≤c2g(n)0\leq c_1g(n) \leq f(n)\leq c_2g(n) Θ(g(n))\Theta(g(n))是一个满足上述要求的函数集合, f(n)∈原创 2017-08-27 19:59:16 · 740 阅读 · 0 评论 -
最大子数组问题-递归法 @ Python
# -*- coding: utf-8 -*-'''@target: 求解一个最大子数组@author: dawang@date: 2017.9.9'''def maxSubArray(l): length = len(l) if 1 == length: # 递归终止条件 return l mid = length // 2 l_max原创 2017-09-09 10:46:46 · 601 阅读 · 0 评论