![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
小白学算法
文章平均质量分 73
AbsoluteClownMaster
这个作者很懒,什么都没留下…
展开
-
小白学算法之二分
二分算法是一种根据序列的某种性质(例如单调性),每次将答案区间减半,最后找到答案或者答案所在的区间的不断逼近的过程。这种算法的时间复杂度为O(logn)。原创 2023-09-05 22:32:42 · 40 阅读 · 0 评论 -
小白学算法之前缀和和差分
有了二维前缀和数组,我们就可以在O(1)的时间复杂度内求出任意矩形区域内元素的和了,公式为sum(i,j,x,y) = s[x][y] - s[x-i][y] - s[x][y-i] + s[x-i][y-i],其中sum(i,j,x,y)表示原数组中从(i,j)到(x,y)这个矩形区域内所有元素的和。比如对于一个序列a,它的前缀和序列s可以表示为:s[0] = 0,s[i] = s[i-1] + a[i] (i > 0),其中s[0]表示序列的第一个元素的前缀和为0,s[i]表示序列前i个元素的和。原创 2023-09-04 22:10:32 · 74 阅读 · 1 评论 -
小白学算法之排序-冒泡排序、选择排序、插入排序、归并排序、快速排序
我们在日常生活中所搜集来的数据通常是杂乱无序的,所以我们为了更好的对其进行搜索等其他操作,往往需要一个有序的数据,同时可以帮助人们更好的理解数据的实际意义从而更好的 利用数据,提高数据的价值。一下就带来几种常见的排序方法。通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分小,然后对两部分进行递归的快速排序。在数组前面维护一个排序好的数组区间,在向后遍历的过程中将所遍历到的数依次插入前面维护好的区间内,再进行n-1次插入后,前面维护的有序区间就是整个数组。原创 2023-09-04 15:44:48 · 66 阅读 · 1 评论 -
小白学算法之STL的学习与使用 vector queue map
STL(Standard Template Library,标准模板库)是C++标准库的一部分,包含了大量的通用算法和数据结构。STL提供了诸如算法(如排序、搜索、遍历等)、容器(如向量、列表、集合等)以及迭代器等组件,这些组件可以用于构建各种复杂的数据处理程序。STL的组件大致可以分为三类:容器、算法和迭代器。容器是用于存储数据的结构,如向量、列表、集合等。算法是对数据进行操作和处理的函数,例如排序、搜索等。迭代器则用于在容器中访问和操作数据。原创 2023-09-04 08:00:00 · 140 阅读 · 1 评论 -
小白学算法之时间复杂度和空间复杂度
而对于算法而言,我们所评定好坏的标准是一个算法的时间复杂度和空间复杂度:时间复杂度是用来评估算法运行时间与输入数据规模之间关系的一种度量方式。它通常表示算法在输入规模增大时,运行时间的增长趋势和幅度。时间复杂度通常用大O表示法来表示,其中O表示“on the order of”。这意味着,当输入规模n增大时,算法的运行时间将按照某个函数的增长率趋近于一个常量,这个函数就是算法的时间复杂度。:空间复杂度是用来评估算法所需空间与输入数据规模之间关系的一种度量方式。原创 2023-09-03 17:46:48 · 70 阅读 · 0 评论 -
小白学算法总集篇
小白学算法系列文章目录小白学算法需要注意什么 时间复杂度 什么是STL vector queue map 排序 前缀和 差分 二分 高精度加法 高精度减法 快速幂 判断质数 求解因数原创 2023-09-02 09:57:12 · 173 阅读 · 1 评论 -
小白学算法之小白应该注意什么
而选择何种的编程语言来搞算法,完全没有区别,只是在代码的实现上不同,而其背后的算法原理其实是一模一样的,而本片所采用的主流编程语言便是C/C++。上述注意事项,便是由百度的文心一言所直接生成的,内容很深刻,而文心一言便是人工智能的一种,其背后的大语言模型更是运用了很多高深的算法,当然了作为刚入门的算法小白,这些远不是我们所考虑的内容,而人工智能背后所牵扯的国际战略型问题更是遥不可及(当然了,对于大佬那才是您的追求),那么我们学习算法的最贴切、最符合当下满足的事情是什么?算法的学习,只有少部分。原创 2023-09-02 09:53:44 · 195 阅读 · 0 评论