
算法
文章平均质量分 91
算法+数据结构=程序
晓晓1121
零零碎碎的分享
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
算法:模块划分
算法:模块划分背景在工作中,为了实现某一需求,花了很长一段时间,也问了几个人,都没有解决方案。最后尝试各种解法,终于知道如何解决问题,所以进行笔记。为了简化问题,不进行需求描述,将实际需求转换为算法问题。如下内容。问题描述存在一个列表arrs,列表内有n个键相同值不同的元素element。每个元素都有x,y共2个键,即{“x”:"",“y”:""}。列表内的元素数量未知,但可以知道若干个元素可以划分为一个模块。划分规则为键x或者键y其中一个的值相等,则为一个模块。存在nums个模块另外,任意两个原创 2021-12-25 15:30:58 · 948 阅读 · 0 评论 -
问题:数字元素均匀分布
20210619_数字元素均匀分配前言在工作中,有位同事提出了一个场景问题,当时没有只想到前两种方法,事后发现还有2种方法,所以进行笔记时间线2021年6月18日 问题提出,解决2021年6月19日 笔记问题从1到n存在若干数字元素,如何将这些数字元素均匀分配到k个集合中。例如从1到32,将元素分到8个集合中,则8个集合中的第1个集合是[1,9,17,25],第2个集合是[2,10,18,26]解决思路思考可以使用数据结构实现问题场景模拟,也可以使用数学方法方法1:使用队列原创 2021-06-19 10:59:55 · 907 阅读 · 0 评论 -
汉诺塔(图解演算+推导+Python实现)
汉诺塔文章目录汉诺塔前言时间线故事背景问题延申:经典汉诺塔逻辑演算代码处理对象定义动作定义递归计数代码实现总结前言关于汉诺塔的记忆很早就有了,无论还是益智玩具,还是电影片段汉诺塔一直都是智力游戏的象征。在后来的编程中,也接触到了汉诺塔。时间线时间内容2021年5月1日完成初稿故事背景汉诺塔(Tower of Hanoi),又称河内塔,是一个源于印度古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大原创 2021-05-01 16:26:23 · 2400 阅读 · 18 评论 -
二叉树-二叉搜索树(Python实现)
二叉树-二叉搜索树文章目录二叉树-二叉搜索树时间线前言定义定义性质一图流二叉搜索树的构造二叉搜索树无唯一二叉搜索树元素不可重复逻辑插入:插入元素到二叉搜索树删除:删除某个元素修改:修改某个值查询:最小元素/最大元素逻辑思考时间复杂度实现Python源文件测试运行结果思考时间线 2020年7月9日-完成初稿前言之所以选择二叉搜索树作为二叉树模块的起点,是因为对于二叉搜索树还是有点印象的,但是弄懂二叉搜索树的相关内容,还是花费了一天的时间。其中最大的时间占比是代码实现部分,因为不断地推翻与重原创 2020-07-09 15:50:34 · 1236 阅读 · 0 评论 -
希尔(谢尔)排序/缩小增量排序(Python实现)
排序-希尔排序文章目录排序-希尔排序时间线前言定义一图流逻辑逻辑思考时间复杂度实现Python思考时间线 2020年7月4日——完成初稿 2020年7月4日——增加时间性能测试前言从学习算法到这篇笔记完成之前,一直都以为希尔排序是多么难懂以及高大上,但其实只要弄懂了就简单了。以前觉得只要掌握一些常见的即可,但后来才发现,其它的排序算法也有其独特的魅力——不是说这个算法可以实现了什么完成了什么,其魅力在于实现的过程,与其它算法的区别。定义一图流希尔排序是直接插入排序算法的改进,所原创 2020-07-05 08:32:31 · 472 阅读 · 0 评论 -
归并排序(分治法+递归)(Python实现)
排序算法-归并排序文章目录排序算法-归并排序时间线前言定义一图流逻辑分类自顶向下自底向上时间复杂度实现自底向上Python自顶向下Python思考时间线 2020年7月3日——完成初稿前言归并排序可以说是分治法和递归的一个典型运用,而且归并排序的思想也是和分治法所契合的。例如在分治法的思想上,一个集合有多个对象,使用其它的排序,那么就需要对这个集合进行排序,工作区是在这个集合中而归并排序是将这个集合拆分成若干个集合,而拆分规则是,将每一个对象单独放置在一个集合中,那么这个集合就是有序原创 2020-07-03 18:52:32 · 1934 阅读 · 2 评论 -
A*算法的实现(Python)
前言关于A*算法的实现是很早之前的一次开发中的成果,并做了一些改进。当然,在这里就不记录改进部分了,因为其中还有一些争议。这里仅是对A*算法的理解和使用Python实现。定义(百度百科)A*(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法。算法中的距离估算值与实际值越接近,最终搜索速度越快一个真正的A*算法必须包含以下对象:开启列表、关闭列表、G、H分析估价函数F(n)=G(n)+H(n)其中11估价函数原创 2020-06-28 21:35:44 · 21888 阅读 · 28 评论 -
斐波那契查找算法(递归)
同系列算法问题回溯法解决流水作业调度问题(全排列+计算模型+剪枝函数)回溯法解决N皇后问题-Python实现(全排列+剪枝)贪心算法解决活动安排-Python实现(排序+贪心选择)问题问题概述分析问题解决问题编程编程流程以及数据类型选择发现问题以及解决最终实现程序代码:#time:2020.01.01#au...原创 2020-01-01 23:45:01 · 563 阅读 · 0 评论 -
回溯法解决流水作业调度问题(全排列+计算模型+剪枝函数)
同系列算法问题回溯法解决N皇后问题-Python实现(全排列+剪枝)贪心算法解决活动安排-Python实现(排序+贪心选择)问题有n个作业(编号为1~n)要在由两台机器M1和M2组成的流水线上完成加工。每个作业加工的顺序都是先在M1上加工,然后在M2上加工。M1和M2加工作业i所需的时间分别为ai和bi(1≤i≤n)。流水作业调度问题要求确定这n个作业的最优加工顺序,使得从第一...原创 2019-11-24 13:47:18 · 4528 阅读 · 5 评论 -
回溯法解决N皇后问题-Python实现(全排列+剪枝)
同系列算法问题贪心算法解决活动安排-Python实现(排序+贪心选择)N皇后问题问题问题概述分析问题解决问题编程编程流程以及数据类型选择发现问题以及解决最终实现总结程序缺陷以及完善解题心路历程问题在n*n格的棋盘撒上放置彼此不受攻击的n个皇后。按照国际象棋的规矩,皇后可以攻击与之处在同一行或者同一列或者同一斜线上的棋子。N皇后问题等价于在...原创 2019-11-13 22:56:04 · 6154 阅读 · 1 评论 -
贪心算法解决活动安排-Python实现(排序+贪心选择)
贪心算法解决活动安排问题问题概述分析问题解决问题编程编程流程以及数据类型选择发现问题以及解决最终实现总结程序缺陷以及完善解题心路历程问题问题概述设有n个活动的集合E={1,2,……,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源。每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi,且...原创 2019-10-31 15:57:11 · 6131 阅读 · 0 评论