1.算法定义 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。一个
转载 2023-06-30 11:55:06
187阅读
一、算法简介1、定义算法是一组完成任务的指令;有限步骤内解决数学问题的程序;为解决某项工作或某个问题,所需要有限数量的机械性或重复性指令与计算步骤。2、算法的条件(5)输入性,输出性,明确性,有限性,有效性。3、时间复杂度O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n!)4、常见的大O运行时间(n一般为元素的个数):O(
转载 2023-08-10 15:24:31
100阅读
今天一个Python学习的干货。几个印度小哥,在GitHub上建了一个各种Python算法的新手入门大全,现在标星已经超过2.6万。这个项目主要包括两部分内容:一是各种算法的基本原理讲解,二是各种算法的代码实现。传送门在此:https://github/TheAlgorithms/Python简单介绍下。算法的基本原理讲解部分,包括排序算法、搜索算法、插值算法、跳跃搜索算法、快速选择算
A*算法python简单可视化实现A*算法详解:A*算法详解python实现:使用堆优化加快查找最小代价点 详细流程都写在注释里了使用方法:# 参数为地图高、宽、方格尺寸、起点坐标(0开始)、终点坐标(0开始)、延迟时间 demo = MiniMap(20, 30, 30, (0, 0), (29, 19), 0.05)鼠标左键单击方格添加/删除障碍物,中键重置路径(不改变障碍物),右键开始寻路。
算法的五大特性:1、输入:有0个或多个输入2、输出:有0个或多个输出3、确定性:算法每一步都有一定的含义,不会出现二义性4、有穷性:算法在执行有限的步骤之后会结束,而不是无线循环执行。5、可行性:算法的每一步都是可行的   如果 a+b+c=1000,且 a^2+b^2=c^2(a,b,c 为自然数),如何求出所有a、b、c可能的组合?  &nbs
该系列博客的内容均为阅读《Grokking Algorithms》(Aditya Bhargava)的心得or笔记or总结 那么我们就直接进入正题吧 简单查找这个算法应该是最普通的算法or最直接的算法了 工作原理:在一数组里面找一个数按顺序一个一个查找如果匹配,则返回索引如果在过完一遍数组都没有匹配到,则输出none 代码展示(python):1 def S
转载 2023-05-22 15:57:22
61阅读
算法是程序的灵魂,而排序算法算法的入门经典,作者在此用python亲自实现了7种主流的排序算法,并做简短的说明. 排序算法 学习难度:桶排序 < 冒泡排序 < 选择排序 < 插入排序 < 快速排序 < 归并排序 < 希尔排序桶排序(简化版)桶排序: 将列表中最大数与最小数之间的数全部做成标签,贴到N个桶上 将每个元素放到对应值
转载 2024-06-07 09:44:58
66阅读
几个印度小哥,在GitHub上建了一个各种Python算法的新手入门大全,现在标星已经超过2.6万。这个项目主要包括两部分内容:一是各种算法的基本原理讲解,二是各种算法的代码实现。传送门在此:简单介绍下。算法的基本原理讲解部分,包括排序算法、搜索算法、插值算法、跳跃搜索算法、快速选择算法、禁忌搜索算法、加密算法等。这部分内容,主要介绍各种不同算法的原理,其中不少介绍还给出了动态示意图,以更初学者能
看这个算法之前,最好先看下匈牙利算法,KM算法 是建立在匈牙利算法基础上实现的对于这个算法最有误区的地方,个人感觉还是在  X 集合 -d  和 Y 集合 + d之后 还要进行操作,再加上 深搜递归操作  ,理解容易产生误区,在这里我给出一组模板的测试数据来帮助初学者理解注意观察: visx[],visy[],lx[],ly[],linky[],在调用中的变化:3 4
1.算法定义算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。一个算法应该具有
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。2. 动图演示3. Python 代码实现def bubbleSort(arr): for i in range(1, len(arr)): for j in range(0, len(arr)-i): if arr[j] > arr[j+1]: arr[j], arr[j + 1] = arr[j + 1], arr[j
经典排序算法图解:经典排序算法的复杂度:使用场景:1.空间复杂度 越低越好、n值较大:堆排序  O(nlog2n)  O(1)2.无空间复杂度要求、n值较大:桶排序  O(n+k)    O(n+k)大类一(比较排序法):1、冒泡排序(Bubble Sort)【前后比较-交换】 python实现:d0 = [2, 15, 5, 9, 7, 6, 4, 12, 5, 4, 2, 64, 5, 6,
1. 字符串匹配算法所谓字符串匹配算法,简单地说就是在一个目标字符串中查找是否存在另一个子字符串。如在字符串 "ABCDEFG" 中查找是否存在 “EF” 字符串。可以把字符串 "ABCDEFG" 称为原始(目标)字符串,“EF” 称为子字符串或模式字符串。本文试图通过几种字符串匹配算法算法差异性来探究字符串匹配算法的本质。常见的字符串匹配算法:BF(Brute Force,暴力检索算法)RK
转载 2023-07-04 15:18:16
102阅读
发动机悬置python仿真计算代码可复制到https://hub.gke2.mybinder.org/user/lijil168-requirements-l6zexquh/tree运行1、发动机悬置模态及解耦参考2、发动机动力学激励计算参考3、用数组和矩阵两种方式计算刚度矩阵,并对比结果,原文公式推导有点点错误。python用多维数组完成矩阵运算,很简洁而且可读性好。4、思路:由发动机爆压计算
转载 2023-10-25 15:56:00
95阅读
梯度下降法梯度下降是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。在求解损失函数的最小值时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数和模型参数值。反过来,如果我们需要求解损失函数的最大值,这时就需要用梯度上升法来迭代了算
转载 2023-05-26 11:06:34
199阅读
时间复杂度:假设存在函数g,使得算法A处理规模为n的问题示例所用时间为T(n)=O(g(n))→渐进函数,那么则称O(g(n))是算法A的时间复杂度
转载 2023-05-22 22:01:20
117阅读
https://www.bilibili.com/video/av36886554?t=538floyd算法:能够找到图中任意两个节点之间的最短路径,时间复杂度为O(n**3),其中n表示图中的节点数算法思路:假设当前的通过floyd算法计算图中任意两个节点之间的距离,需要构建两个矩阵:distance_matrix  shape=[num_node,num_node],其中的
AES加解密算法 Python实现实现了AES加解密算法。初次尝试,能力有限,代码粗糙,仅供交流学习。五种工作模式也实现了,有需要的可以私聊我。Talk is cheap. Show me the code.def HexToListTranslation(Hex="0123456789abcdeffedcba9876543210"): List=[] for p in range
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。 渐近时间复杂度简称时间复杂
InfoMap算法了解InfoMap算法之前,需要先了解最小熵原理最小熵原理是一个无监督学习的原理,“熵”就是学习成本,而降低学习成本是我们的不懈追求,所以通过“最小化学习成本”就能够无监督地学习出很多符合我们认知的结果,这就是最小熵原理的基本理念。编码的最短平均长度就是信息熵,这其实也是无损压缩的能力极限,我们通过寻找更佳的方案去逼近这个极限,这便是最小熵。假如我们有这么一个任务,要求我们在短时
  • 1
  • 2
  • 3
  • 4
  • 5