算法
文章平均质量分 74
纯洁的小魔鬼
只有风暴才能击倒大树
展开
-
二叉树基础
在计算机科学中,树是一种用于表示层次结构的抽象数据类型和非线性数据结构。树由一组节点(Nodes)和节点之间的关系(通常通过边表示)组成。树的定义具有以下特性和组成部分:2.特性树是一种递归的数据结构:树可以定义为包含子树的树。树是连通无环图:树是无环图(Acyclic Graph),且在树中任意两个节点之间只有唯一一条路径。3.树的组成1. 节点(Node):树的基本单位,包含数据或值。2. 根节点(Root Node):树的顶端节点,是树的唯一入口点。根节点没有父节点。3. 子节点(Child Node原创 2024-07-03 18:32:21 · 874 阅读 · 0 评论 -
算法-贪心算法
初始化从某个初始解开始选择步骤在每一步选择中,选择在当前状态下最优或最有利的选择。检查是否完成检查当前选择是否构成了一个完整的解,或者是否满足了问题的要求。如果是,则算法结束;否则,继续进行下一步选择。贪心算法在某些情况下能够非常高效地解决问题,但并不适用于所有问题。二.活动选择问题。原创 2024-07-02 17:44:20 · 609 阅读 · 0 评论 -
算法-哈夫曼编码
哈夫曼树能够根据字符出现的频率分配变长编码,使得高频字符使用较短的编码,低频字符使用较长的编码,从而最大程度地减少平均编码长度。这种自适应的编码方式使哈夫曼编码在很多实际应用中都能达到接近最优的压缩效果。频率越高的字符,经过的路径越短,则编码越短。最终的需要编码的所有字符都在叶子节点上。原创 2024-06-25 18:31:27 · 2232 阅读 · 0 评论 -
算法-罗马数字转整数
1. 通常情况下,罗马数字中小的数字在大的数字的右边。若输入的字符串满足该情况,那么可以将每个字符视作一个单独的值,累加每个字符对应的数值即可。2.若存在小的数字在大的数字的左边的情况,根据规则需要减去小的数字。对于这种情况,我们也可以将每个字符视作一个单独的值,若一个数字右侧的数字比它大,则将该数字的符号取反。原创 2024-05-29 22:34:10 · 386 阅读 · 1 评论 -
算法-回文数
然后,反转后半部分的数字。逐步的求10的余数, 即可求得最后一位数, 然后除以10, 去掉最后一位数, 对于数字 1221,如果执行 1221 % 10,我们将得到最后一位数字 1,要得到倒数第二位数字,我们可以先通过除以 10 把最后一位数字从 1221 中移除,1221 / 10 = 122,再求除以 10 的余数,122 % 10 = 2,就可以得到倒数第二位数字。如果我们把最后一位数字乘以 10,再加上倒数第二位数字,1 * 10 + 2 = 12,就得到反转后的数字。Go代码:原创 2024-05-29 22:07:51 · 389 阅读 · 0 评论 -
算法-两数之和
利用哈希表, 将 x 值存入哈希表, x 值为 key, 下标为 value, 则每次去寻找存不存在 target - x 的 key, 如果不存在, 则继续将 x 存入哈希表。原创 2024-05-29 20:41:30 · 326 阅读 · 0 评论 -
核密度分析
核密度估计(Kernel Density Estimation)是一种用于估计数据分布的非参数统计方法。数据可视化:核密度估计可以用来绘制平滑的密度曲线或热力图,从而直观地表示数据的分布情况。它可以帮助我们观察数据集中的高密度区域、低密度区域以及变化趋势。异常检测:通过核密度估计,我们可以识别数据中的异常点或离群值。异常点通常表现为低密度区域或与其他数据点明显不同的区域。概率密度计算:核密度估计可以用于计算给定数值的概率密度。通过将新数据点带入核密度估计函数,可以估计出该点在数据分布中的密度。原创 2024-02-22 17:17:16 · 6480 阅读 · 1 评论 -
根据geojson文件模拟随机点
一.判断一个点是否在某一个封闭多边形的范围内可以参考另一篇博客:判断一个点是否在封闭多边形内我们选取其中一个python方式建立文件 is_point_in_polygon.py"""判断某个坐标是否在某个封闭区域内"""# 判断该点是否在该条线上# point:点坐标,如:[113.775698, 30.236892]# o : 该条线的起点# d : 该条线的终点def is_in_line(point, o, d): # 先判断该点是否在线段范围内,如果不在,原创 2021-05-21 17:17:06 · 904 阅读 · 2 评论 -
python坐标转换
"""坐标转换"""import mathx_pi = 3.14159265358979324 * 3000.0 / 180.0pi = 3.1415926535897932384626 # πa = 6378245.0 # 长半轴ee = 0.00669342162296594323 # 偏心率平方coordinate = []lng = []lat = []c...原创 2019-11-24 22:00:13 · 4888 阅读 · 0 评论 -
python将列表平分
一.将一个列表,分成若干个大小为n的列表def split_list_average_n(origin_list, n): for i in range(0, len(origin_list), n): yield origin_list[i:i + n]测试:a = ["a", "b", "c", "d", "e", "f", "g"]b = spli...原创 2019-09-28 16:25:46 · 12300 阅读 · 1 评论 -
线段间以点填充(Python2)
# -*- coding: utf-8 -*-from __future__ import divisionimport math# x1 y1 x2 y2# point...原创 2019-01-15 14:20:12 · 820 阅读 · 0 评论 -
均匀分配算法(Python2)
1.给出一个数字和一个数字的集合,把这个数字依次分成集合中的数字def pureSeparate(number, numberList): resultLists = [] for i in numberList: resultList = [] b = number / i for j in range(0, i): ...原创 2019-01-15 14:30:04 · 5746 阅读 · 0 评论 -
排序算法总结
1.冒泡排序 冒泡算法思想: 1.从左到右依次比较相邻的元素。如果第一个比第二个大,就交换他们两个,等全部执行完,最后的元素就是最大的数,这 时候完成了第一波冒泡。 2.继续从左到右比较相邻的元素,步骤和第一步相同,但是最后一个元素不参与比较,以此类推 冒泡排序是由两个for循环构成,第一个for循环表示总共需要多少轮比较,第二个for循环表示每轮参...原创 2019-07-07 02:16:05 · 668 阅读 · 0 评论 -
环形回路算法(python3)
如题:给出了一组数据,分别是起始点,终点,两点间的距离,现要求指定某一点,以该点为起点和终点,构建所有的环形回路并得出该回路的总长度例如 给出 A 点,要求输出:['A-C-A', 32]['A-B-C-A', 46]['A-B-D-A', 61]['A-C-D-A', 82]['A-B-C-D-A', 96]执行数据放在csv文件中程序:import cs...原创 2019-08-27 23:40:41 · 1630 阅读 · 0 评论 -
判断一个点是否在某个多边形范围内(Java和python实现)
一.java实现所用jar包: <dependency> <groupId>nl.cloudfarming.client</groupId> <artifactId>lib-geotools</artifactId> <version>2.7.5</version> </de...原创 2019-09-19 00:23:08 · 7430 阅读 · 9 评论