算法基础
搜索、二叉树
柏常青
“一切向前走,都不能忘记走过的路;走得再远、走到再光辉的未来,也不能忘记走过的过去,不能忘记为什么出发”
展开
-
快速排序Quicksort
快速排序法:提示:采用递归的方式进行快速排序,需要明确递归结束的条件。比如:len(array) < 2 后return array跳出递归循环,依次返回调用结果。def quicksort(array): if len(array) < 2: # 跳出递归循环的条件。 return array else: # 递归内容:找出比pivot小和大的团伙 pivot = array[0] # 小于pivot的集合 less = [i fo原创 2021-02-26 12:35:39 · 236 阅读 · 0 评论 -
多路查找树 B-Tree
B树和B+树定义2-3树2-3-4树普通树,一个节点只能存储一个元素,在元素非常多的时候,就使得要么树的度非常大,要么树的高度非常大,甚至两者都必须足够大才行。显然,访问的时候使得内存存取次数非常多,是时间效率上的瓶颈。定义多路查找树(multi-way search trees),其每一个节点的孩子数可以多于两个,且每一个节点处可以存储多个元素。由于它是查找树,所有的元素之间存在某种特定的...原创 2020-04-17 18:05:37 · 303 阅读 · 0 评论 -
后缀表达式与四则运算
数据结构与算法--栈应用栈—四则运算表达式求值1.后缀表示法(逆波兰表示,RPN)2.中缀表达式转后缀表达式3.参考文献栈—四则运算表达式求值9+(3-1)×3+10÷2=?计算机是怎么算出来等于20的呢?本文讲解的内容是计算机如何使用栈来表达数学中的四则运算和求值。文中有两个主要的概念,分别是后缀表示法和中缀表达式如何转换成后缀表达式。1.后缀表示法(逆波兰表示,RPN)对于任意表达...原创 2020-04-07 22:47:50 · 1005 阅读 · 0 评论 -
选择排序--Selection sorting method
选择排序:selectionSort–选择排序:选出来,排一起。升序:选出元容器中最小值,依次站好。# 选出最小值def findMinimum(arr): # Stores the Minimum minN = arr[0] # Stores the index of the Minimum minN_index = 0 for i in range(1, len(arr)): if arr[i] < minN: minN_index = i原创 2021-02-26 11:21:59 · 252 阅读 · 0 评论 -
冒泡排序 BubbleSort
冒泡排序:交换兽:相邻两个元素之间比较,前面比后面的值大,就交换。最大的元素一次沉底。def bubble_sort(arry): for i in range(len(arry) - 1): # 这个循环负责设置冒泡排序进行的次数 for j in range(len(arry) - i - 1): # j为列表下标 if arry[j] > arry[j + 1]: arry[j], arry[j + 1] =原创 2021-02-26 16:38:19 · 215 阅读 · 0 评论 -
哈夫曼树与哈夫曼编码
哈夫曼树在实际生活中,要将学生成绩划分为5个等级。而每个分数段的学生占比不同。分数0~5960-6970~7980~8990~100等级不及格及格中等良好优秀代号EDCBA占比5%15%40%30%10%如果按照一般的判断方法如下代码,每次都从60开始比较,而大于70分的成绩占比80%,显然不合理。def scale...原创 2020-04-26 22:42:38 · 1787 阅读 · 0 评论 -
平衡二叉树 AVL树
平衡二叉树平衡二叉树的定义最小不平衡子树平衡二叉树的实现原理算法实现参考文献平衡二叉树的定义平衡二叉树又称:Self-Balancing Binary Search Tree 或Height-Balanced Binary Search Tree:高度平衡的二叉排序树。平衡二叉树:是一种二叉排序树,它的每一个节点的左子树和右子树的高度差小于等于一。由两位俄罗斯数学家 G M Adelso...原创 2020-04-17 13:17:40 · 517 阅读 · 0 评论 -
二分查找算法
二分查找算法实现def binary_search(list, item): # low and high keep track of which part of the list you'll search in. low = 0 high = len(list) - 1 # While you haven't narrowed it down to one element ... while low <= high: # ... check the middle e原创 2021-02-25 17:42:08 · 167 阅读 · 0 评论 -
伴随矩阵A*
伴随矩阵的定义:注意点定义矩阵A是方阵。余子式:伴随矩阵的每个元素的余子式是除去当前元素行列,剩下的元素构成的行列式。代数余子式:取行列式的值,符号由当前行标和列标的值决定(-1的i+j次幂)。位置关系为转置。计算实例:例1:求矩阵A的伴随矩阵,其中行列式An∗n=∣12−1310−1−1−2∣\mathbf{A}_{n*n} = \begin{vmatrix} \mathbf{1} & \mathbf{2} & \mathbf{-1} \\\mathbf{原创 2021-05-31 18:05:42 · 147291 阅读 · 18 评论 -
期望E,方差D,协方差Cov,主成分分析PCA
期望E,方差D,协方差Cov,主成分分析PCA,应用于图像分类识别1、期望方差的理解2、协方差与协方差矩阵3、数据降维的需求背景4、PCA就是从解决特征之间的相关性入手,剔除冗余特征PCA的细节1、期望方差的理解关于此主题,网上可以搜到很多,我写下来的目的是让自己理解透彻一些。同时,也发现自己学生时代学习的数学知识,仅仅停留在单纯的计算上,几乎没有联系实际,更不用说在具体问题上去利用数学规律来解决实际问题了。这是此文章的初衷!首先,期望衡量的是一组变量X取值分布的平均值,记作:E[X],反应不同数据集原创 2020-08-13 18:13:19 · 2513 阅读 · 0 评论