![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【算法集训】基础算法
子琦啊
若还有雄心壮志,那成败都是小事
展开
-
【算法集训】基础算法:二分查找 | 概念篇
二分枚举,也叫二分查找,指的就是给定一个区间,每次选择区间的中点,并且判断区间中点是否满足某个条件,从而选择左区间继续求解还是右区间继续求解,直到区间长度不能再切分为止。由于每次都是把区间折半,又叫折半查找,时间复杂度为 O(logn),和线性枚举的求解结果一直,但是高效许多,返回值可以是下标,也可以是元素本身。【例题3】只有两种颜色的数组 arr ,左边部分为红色用 0 表示,右边部分为绿色用 1 表示,要求找到下标最小的绿色元素的下标。原创 2024-04-06 18:55:14 · 385 阅读 · 0 评论 -
【算法集训】基础算法:前缀和 | 习题篇
这道题如何将每个奇数组找出来想了一段时间,思路能想出来就是代码费了点时间。这一题是简单题,和前面套路一样,算出前缀和之后进行判断就可以了。通过定义左右的和,并依次做变换如果相等则得到结果。要找的是最左边的,所以先把右边加满。左边+1,右边-1,如果相等则返回。原创 2024-04-05 22:28:11 · 285 阅读 · 0 评论 -
【算法集训】基础算法:前缀和 | 概念篇
前缀和就是对于顺序表(数组、列表)来说,计算前面某一段元素的和。原创 2024-04-01 22:28:37 · 463 阅读 · 0 评论 -
【算法集训】基础算法:滑动窗口
定义一个快慢指针,用于截取数组中某一段信息。同时可以改变快慢指针的值来获取结果,这个过程比较像滑动。和上一题一样的,只不过将替换0的值增加为了。原创 2024-03-31 21:53:41 · 326 阅读 · 0 评论 -
【算法集训】基础算法:双指针
【代码】【算法集训】基础算法:双指针。原创 2024-03-31 20:51:02 · 205 阅读 · 0 评论 -
【算法集训】基础算法:贪心
【代码】【算法集训】基础算法:贪心。原创 2024-03-20 22:26:19 · 297 阅读 · 0 评论 -
【算法集训】基础算法:递推 | 习题篇
经过上一节的概念篇学习,你一定对递推有一个大概得了解,今天就做做下面的一些练习题吧,总体上不难,都是最基础的题目。原创 2024-03-20 22:24:14 · 284 阅读 · 0 评论 -
【算法集训】基础算法:递推 | 概念篇
递推最通俗的理解就是数列,递推和数列的关系就好比 算法 和 数据结构 的关系,数列有点像数据结构中的顺序表,而递推就是一个循环或者迭代的枚举过程。递推本质上是数学问题,所以有同学问算法是不是需要数学非常好,也并不是,你会发现,这些数学只不过是初中高中我们学烂的东西,高考都经历了,这些东西又何足为惧!?原创 2024-03-08 21:10:39 · 903 阅读 · 0 评论 -
【算法集训】基础算法:模拟
顾名思义,就是题目要求做什么,代码中就跟着做就可以。原创 2024-03-07 22:39:53 · 498 阅读 · 0 评论 -
【算法集训】基础算法:枚举
枚举的概念就是把满足题目条件的所有情况都列举出来,然后一一判定,找到最优解的过程。,也是一个不错的方法、原创 2024-03-03 22:28:56 · 1098 阅读 · 0 评论 -
【算法集训】基础算法:基础排序 - 计数排序
*工作原理:**使用一个额外的数组ct,其中第i个元素是待排序数组A中值等于i的元素的个数,然后根据数组ct来将A中的元素排到正确的位置。非基于比较:之前学的排序都是通过比较数据的大小来实现有序的,比如希尔排序等,而计数排序不用比较数据的大小。这些题都可以用其他排序方法试一遍,用来巩固也是比较好的,明天就要开始其他的算法系列了。计数排序(Counting sort))是一个非基于比较的稳定的线性时间的排序算法,计数排序的名字会让我们想到“计数法”,实际上计数排序的实现就是使用的计数法。原创 2024-03-02 23:13:50 · 485 阅读 · 0 评论 -
【算法集训】基础算法:基础排序 - 插入排序
插入排序(nsertion Sort),一般也被称为直接插入排序,是一种简单直观的排序算法。**工作原理:**将待排列元素划分为「已排序」和「未排序」两部分,每次从「未排序的」元素中选。择一个插入到「已排序的」元素中的正确位置。原创 2024-03-01 21:53:48 · 397 阅读 · 0 评论 -
【算法集训】基础算法:基础排序 - 冒泡排序
它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就像水中的气泡会冒起来一样。,是一种简单的排序算法。原创 2024-03-01 21:01:32 · 406 阅读 · 0 评论 -
【算法集训】基础算法:基础排序 - 选择排序
选择排序就是每一轮都选择最小 | 最大的值放到最前面,等到遍历完毕即可完成排序大致算法步骤: 两层循环: 第一层定义每轮最初的假定最小 | 最大值; 第二层则是进行比较找出最小值 每一次内循环完毕后需要将当前找到的最小值移动到前面。 如此往复,可排序成功原创 2024-02-28 23:15:12 · 491 阅读 · 0 评论