摘要:```python3 def get_increment_between_two_dict(item_old, item_new): """ 比较两个字典,并返回增量部分 :param dict_old = {"a":{"a_1":"haha","a_2":[1,2,3],"a_3":10},"b":{"b_1":"an","b_2":10}, ...
阅读全文
摘要:https://www.zhihu.com/question/20962240 知乎上的,看过的最好的讲解
阅读全文
摘要:最大似然估计:现在已经拿到了很多个样本(你的数据集中所有因变量),这些样本值已经实现,最大似然估计就是去找到那个(组)参数估计值,使得前面已经实现的样本值发生概率最大。因为你手头上的样本已经实现了,其发生概率最大才符合逻辑。这时是求样本所有观测的联合概率最大化,是个连乘积,只要取对数,就变成了线性加
阅读全文
摘要:创建如下二叉树: #coding:utf-8 class Node(object): '''构造节点''' def __init__(self,data=None,lchild=None,rchild=None): self.data = data self.lchild = lchild self
阅读全文
摘要:二分查找 二分查找是对一组有序序列进行查找。根据要查找的k和序列中间元素比较,动态的移动查找范围。以对折的方式缩小查找范围。 递归方式: 非递归方式:
阅读全文
摘要:归并排序 归并排序说的简单一点就是把一个大的序列分成多个子序列,再别对各个子序列进行排序,等所有子序列都排序完成之后,再逐步从所有的子序列里面抽出最小的元素放回到大序列里面。直至所有元素都放回大序列,从而完成排序。 是采用分治法的典型案例。 本例是 二路归并。 一个大的序列 分成两个子序列分别进行排
阅读全文
摘要:堆排序 在堆排序中,我们可以将顺序表看成一颗完全的二叉树 二叉树知识回顾: 从1开始对二叉树中的每个节点顺序编号 序列 : [ # , C, H, G, E, A, D, I, F, B, K ] 索引 1 2 3 4 5 6 7 8 9 10 所以编号为 i 的 左孩子节点编号为 2*i ; 右孩
阅读全文
摘要:选择排序 每一趟从待排序的元素中,选出最小的元素,放到已经排好序的序列的后面直到全部元素排序完毕。在这个过程中,有序区逐步扩大,而无序区逐渐缩小。 直接选择排序 直接选择排序是将无序区内的最小元素追加到有序区的后面,从而扩大有序区的范围。而我们又是在原地排序,所有也就相当与交换无序区的第一个元素和无
阅读全文
摘要:快速排序 快速排序是在等待排序的n个记录中随机取出一个元素作为基准,比基准小的元素放到基准左边,比基准大的放到基准的右边。 然后分别对基准两边的子序列进行上一步的操作。递归的进行,直到排序完成。 可以设置两个游标分别对序列左右两端的元素进行跟踪。以方便和基准比较大小进行移动。 如图所示,low 和
阅读全文
摘要:冒泡排序 冒泡排序是通过无序区相邻两个元素之间进行比较和位置交换,达到排序的目的。 插入排序是设定序列的 1 到 n-1 元素为无序区,初始有序区就只有 0 这个元素,然后将无序区中的元素和有序区中的元素逐个进行比较插入。从而是不断扩大有序区的范围。减少无序区的范围直至排序完成。 而冒泡排序则视整个
阅读全文
摘要:希尔排序 希尔排序也是插入排序的一种。又名缩小增量排序。它是对直接插入排序的一种改进。 直接插入排序是每次都和前面一个元素进行比较。其步长为 1。 希尔排序则不然,它得步长是动态变化的,或者说是由大到小变化的。希尔排序根据步长将整个序列分成n组。然后在各个子组内部分别进行元素的排序。接着缩小步长,相
阅读全文
摘要:插入排序 直接插入排序 每次将一个待排序的记录,按其关键字大小插入到前面的已经排好的子表中的适当的位置。直到全部记录插入完成为止。 看图说话,如图所示: 一共有 N 个记录 ,放在 R 列表中 R[0,n-1] 在排序过程中的某一时刻,呈现了如果所示的场景。 其中: 浅绿色为 已经排好序的 部分 称
阅读全文
摘要:二叉树的遍历 二叉树的遍历分先序、中序、后序和层次遍历。实现方式分递归和非递归方式。 这里说说层次遍历。 层次遍历是逐层访问二叉树的每个节点。属于广度优先。常常使用队列的方式。 如图有以下一棵二叉树,它构建的队列形式为: 1、先把根节点 1 放入队列,然后弹出,看看它有没有左右孩子,如果有,按顺序将
阅读全文
摘要:k 是一个集合的最大值 假如有一个匹配字符串 T,在 x 出匹配失败。那么从 T[0] 到 T[k-1] 取子字符串和从T[x-k] 到 T[x-1]取子字符串,如果相等,那么产生一个值放入集合中, 最后在集合中选取最大的就是 k值 如果下所示: 假如 匹配串 T = 'abaabcac' 在进行匹
阅读全文
摘要:a[i] != b[j] 出现了不匹配的元素 从a 的第二个元素开始和b的第一个元素开始匹配 a[i] != b[j] 从a的第三个元素开始和b的第一个元素开始匹配 多图之后就会发现,如果出现不匹配,那么那么它们的初始匹配位置就在 a[i-j] 而下一次匹配 就从 a[i-j+1] 开始匹配 b[0
阅读全文