- 博客(13)
- 收藏
- 关注
原创 算法基础入门概述
动态规划的特点是能够把很复杂的问题分解成一个个阶段来处理的递推方法,动态规划必须符合两个特点:无后效性(一个状态的抉择不会影响到更大问题的状态的抉择)及最优化原理(一个大问题的最优性必须建立在其子问题的最优性之上)。分析一个算法的运行时间时,重要的是把基本操作的数量与输入规模关联起来,即基本操作的数量必须表示成输入规模的函数。递归算法是把大问题分解成相对较小的问题的过程,而递推就是从小问题逐步推导出大问题的过程。一个程序的运行时间依赖于算法的好坏和问题的输入规模,所谓问题输入规模的是指输入量的多少。
2025-09-03 20:55:49
537
原创 一文带你了解算法背后的基本原理
分类问题的核心是如何利用模型来判别一个数据点的类别,这个类别一般是离散的,比如两类或者多类。回归问题的核心则是利用模型来输出一个预测的数值,这个数值一般是一个实数,是连续的。通常情况下,无监督学习能够挖掘出数据内部的结构,而这些结构可能会比我们提供的数据特征更能抓住数据的本质联系,因为监督学习中往往也需要无监督学习来进行辅助,这时会有另外一个名字叫“半监督学习”不同的应用场景,聚类又有很多变种,比如认为某个数据点属于一个类别,或者认为某个数据点同时属于好几个类型,只是属于每个类型的概率不同等等。
2025-09-03 17:15:20
1558
原创 五大常用算法:一文搞懂分治算法
/中间的最大值 if(max<leftmax) max=leftmax;快排也是分治的一个实例,快排每一趟会选定一个数,将比这个数小的放左面,比这个数大的放右面,然后递归分治求解两个子区间,当然快排因为在分的时候就做了很多工作,当全部分到最底层的时候这个序列的值就是排序完的值。最大子序列和的问题我们可以使用动态规划的解法,但是也可以使用分治算法来解决问题,但是最大子序列和在合并的时候并不是简单的合并,因为子序列和涉及到一个长度的问题,所以正确结果不一定全在最左侧或者最右侧,而可能出现结果的区域为:。
2025-09-03 17:09:01
779
原创 算法的时间与空间复杂度
算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别。那么我们应该如何去衡量不同算法之间的优劣呢?主要还是从算法所占用的「时间」和「空间」两个维度去考量。因此,评价一个算法的效率主要是看它的时间复杂度和空间复杂度情况。然而,有的时候时间和空间却又是「鱼和熊掌」,不可兼得的,那么我们就需要从中去取一个平衡点。下面我来分别介绍一下「时间复杂度」和「空间复杂度」的计算方式。
2025-09-03 17:08:11
446
原创 机器学习十大算法模型详细介绍
机器学习是人工智能领域的重要分支,通过让机器从数据中学习并自动改善性能,实现了许多令人惊叹的成就。在机器学习领域,有许多经典的算法被广泛应用于各种任务。本文将深入介绍机器学习领域的十大经典算法,包括线性回归、逻辑回归、决策树、随机森林、支持向量机、朴素贝叶斯、K均值聚类、主成分分析、神经网络和深度学习。通过对这些算法的详细介绍,读者将能够更好地理解机器学习的基本原理和应用。
2025-09-03 17:07:31
630
原创 机器学习十大优先级算法
3. 泛化能力强:SVM 具有很强的泛化能力,能够在训练数据较少的情况下,对未知数据进行准确的分类。例如,在医学诊断中,SVM 可以根据少量的病例数据,对新的病例进行准确的诊断。2. 异常检测:聚类算法可以用于异常检测,通过将数据分成不同的簇,可以发现与其他数据不同的异常数据。3. 图像分割:聚类算法可以用于图像分割,将图像中的像素分成不同的区域,每个区域代表一个不同的物体或背景。通过对数据进行聚类,可以将相似的数据聚在一起,不同的数据分开,从而更好地理解数据的分布和特征。
2025-09-03 17:04:08
713
原创 机器学习十大算法:从原理到实践的探索
本文将介绍机器学习的十大算法,包括线性回归、逻辑回归、决策树、随机森林、支持向量机、朴素贝叶斯、K最近邻算法、深度学习、集成学习和强化学习,并深入探讨它们的原理、应用和优缺点。随机森林通过随机选择数据集中的一部分特征和样本,构建多个不同的决策树,然后综合它们的预测结果来进行最终的分类或回归。通过最小化预测值与实际值之间的交叉熵损失,可以求解出β0和β1的值,从而得到最佳分类边界。线性回归的应用非常广泛,例如在金融领域中用于预测股票价格、在医疗领域中用于预测疾病发病率、在市场营销领域中用于预测销售额等。
2025-09-03 17:03:18
695
原创 神经网络算法入门
我们假设上面的网络里所有神经元都具有相同的权重w=[0,1]和偏置b=0,激活函数都是sigmoid,那么我们会得到什么输出呢?sigmoid函数的输出介于0和1,我们可以理解为它把 (−∞,+∞) 范围内的数压缩到 (0, 1)以内。在训练神经网络之前,我们需要有一个标准定义它到底好不好,以便我们进行改进,这就是损失(loss)。神经网络的输出y=0.524,没有显示出强烈的是男(1)是女(0)的证据。如果我们用这种方法去逐步改变网络的权重w和偏置b,损失函数会缓慢地降低,从而改进我们的神经网络。
2025-09-03 17:02:31
677
原创 高中数学“(软件)算法初步”基础知识
(3)顺序性和正确性——算法从初始步骤开始,分为若干明确的步骤,每一个步骤只能有一个确定的后继步骤,前一步是后一步的前提,只有执行完前一步才能进行下一步,并且每一步都准确无误,才能完成问题。(2)确定性——算法从初始步骤开始,分为若干明确的步骤,每一个步骤只能有一个确定的后继步骤,前一步是后一步的前提,只有执行完前一步才能进行下一步,并且每一步都准确无误,才能完成问题。(1)广义的算法——是指完成某项工作的方法和步骤,那么我们可以说洗衣机的使用说明书是操作洗衣机的算法,菜谱是做菜的算法,等等。
2025-09-03 17:01:30
1075
原创 排序算法-Timsort算法思想原理及C代码实现
Timsort 算法是一种融合了归并排序和插入排序思想的混合型排序算法。它由 Tim Peters 在 2002 年设计,最初用于 Python 编程语言中。Timsort 在 Python 的 sorted() 函数和 Java 的 Arrays.sort() 方法中都得到了应用。Timsort 算法的核心思想是将待排序的数组划分为多个小的有序块,然后通过合并这些块来实现整体有序。该算法的关键在于充分利用了归并排序的稳定性和插入排序的高效性。
2025-09-03 17:00:32
350
原创 介绍常用编程算法:排序、搜索、图形和散列
4. 深度优先搜索:从起始顶点开始,选择一个未被访问的临界点进行访问,然后以该点作为起始顶点继续深度优先搜索……3. 广度优先搜索:按层次在图的顶点之间搜索,从起始顶点开始,先访问与起始顶点相邻的所有顶点,然后再访问与第一层顶点相邻的所有顶点。4. 最大流算法:在一个有向图中,从源点到汇点之间通过一些边形成的网络,寻找一条最大的流量安排方式。2. 最小生成树算法:从无向连接图中,选择边加入到生成树中,使其最终得到的最小费用的生成树。散列算法是将任意长度的文字或数字压缩成固定长度的字符串的算法。
2025-09-03 16:56:00
186
原创 什么是算法(算法基础篇)
时间复杂度(算法的重复次数):T(n)=O(f(n)),常见的有:常量阶O(1),线性阶O(n),平方阶O(n^2)、立方阶O(n^3)、对数阶、指数阶。逻辑结构:数据元素之间的关系成为数据的逻辑关系,它与数据的存储无关(数据的逻辑结构是从逻辑关系上描述数据),是独立于计算机的。撇开与计算机硬件有关的因素,可以认为一个特定的算法“运行工作量”的大小只依赖于问题的规模n,它是问题规模的函数。也就是说:南京的结点存放的是成都的地址,所以该结点指向的下一结点为成都,而北京结点的下一结是上海。
2025-09-03 16:55:19
452
原创 在编程中,什么是算法?
1. 排序算法:冒泡排序、选择排序、插入排序、快速排序、归并排序等。2. 搜索算法:线性搜索、二分搜索、广度优先搜索、深度优先搜索等。3. 图算法:最短路径算法、最小生成树算法、拓扑排序算法等。4. 动态规划算法:背包问题、最长公共子序列问题、最长递增子序列问题等。6. 贪心算法:背包问题、最小生成树问题、任务调度问题等。7. 数学算法:欧几里得算法、素数判定算法、大数运算算法等。以上只是一些常见的算法,实际上还有很多其他的算法,每种算法都有其特定的应用场景和优缺点。
2025-09-03 16:49:45
240
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅