算法基础
文章平均质量分 80
一些基础算法
quicklysleep
O(∩_∩)O
展开
-
算法竞赛时间复杂度分析
ฅ(๑˙o˙๑)ฅ 大家好, 欢迎大家光临我的博客:面向阿尼亚学习算法学习笔记系列持续更新中~文章目录一、前言二、时间复杂度的定义三、不同数据范围算法的选择四、语法小技巧【代码加速器】五、比较常见的数最后一、前言相信很多人在写完题提交会出现TLE的情况,很让人苦恼,这是因为我们在做题时没有提前计算好时间复杂度导致的超时,所以什么是时间复杂度?我们又该如何根据数据范围选择合适的时间复杂度呢?在算法竞赛以及有关计算机科学的诸多学科中,时间复杂度和空间复杂度是评判一个算法/程序的重要标准。.原创 2022-05-13 22:32:21 · 908 阅读 · 6 评论 -
算法竞赛常用库函数整理
ฅ(๑˙o˙๑)ฅ 大家好, 欢迎大家光临我的博客:面向阿尼亚学习算法学习笔记系列持续更新中~文章目录前言一、include < algorithm>头文件sort排序next_permutation()全排列swap交换函数reverse 翻转unique 去重lower_bound与upper_bound二、include< ctype.h>头文件isalnumisalphaisdigitislowerisuppertolowertoupper三、include<.原创 2022-05-12 19:04:19 · 596 阅读 · 16 评论 -
【算法基础——第八讲】离散化
大家好,我是quicklysleep,欢迎大家光临我的博客,算法学习笔记系列持续更新中~文章目录一、前言二、排序算法的介绍三、排序算法的运用1.快速排序模板2.冒泡排序模板3.归并排序模板最后一、前言排序算法是最基本的算法之一。二、排序算法的介绍排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排.原创 2022-05-05 16:49:01 · 3722 阅读 · 8 评论 -
【算法基础——第七讲】双指针
大家好,我是quicklysleep,欢迎大家光临我的博客,算法学习笔记系列持续更新中~文章目录一、前言二、双指针算法的介绍三、双指针算法的运用1.最长连续不重复子序列最长连续子序列3.归并排序模板最后一、前言双指针说是一种算法,其实就是一个降低时间复杂度的技巧,双指针法充分使用了数组有序这一特征,从而在某些情况下能够简化一些运算,熟练的运用双指针算法,可以快速简洁的解决问题.二、双指针算法的介绍双指针指的是在遍历对象的过程中,不是普通的使用单个指针进行访问,而是使用两个相同方向(快慢.原创 2022-05-05 14:05:14 · 657 阅读 · 0 评论 -
【算法基础——第六讲】排序
大家好,我是quicklysleap,算法学习笔记系列持续更新中文章目录一、前言二、二分算法的介绍三、二分算法的运用1. 整数二分模板2.浮点数二分模板最后一、前言二分,是一种求极值的算法,通常已知答案的取值范围,然后每次取取值范围的中点,判断之是否可行,然后找可行的一半处理。二、二分算法的介绍二分查找的最优时间复杂度为O(1) 。二分查找的平均时间复杂度和最坏时间复杂度均为 O(logn)。因为在二分搜索过程中,算法每次都把查询的区间减半,所以对于一个长度为n 的数组,至多会进.原创 2022-05-05 13:20:42 · 1135 阅读 · 8 评论 -
【算法基础——第五讲】高精度
大家好,我是quicklysleap,算法学习笔记系列持续更新中文章目录一、前言二、二分算法的介绍三、二分算法的运用1. 整数二分模板2.浮点数二分模板最后一、前言二分,是一种求极值的算法,通常已知答案的取值范围,然后每次取取值范围的中点,判断之是否可行,然后找可行的一半处理。二、二分算法的介绍二分查找的最优时间复杂度为O(1) 。二分查找的平均时间复杂度和最坏时间复杂度均为 O(logn)。因为在二分搜索过程中,算法每次都把查询的区间减半,所以对于一个长度为n 的数组,至多会进行.原创 2022-05-05 00:21:20 · 676 阅读 · 2 评论 -
【算法基础——第四讲】二分
大家好,我是quicklysleap,算法学习笔记系列持续更新中文章目录一、前言二、二分算法的介绍三、二分算法的运用1. 整数二分模板2.浮点数二分模板最后一、前言二分,是一种求极值的算法,通常已知答案的取值范围,然后每次取取值范围的中点,判断之是否可行,然后找可行的一半处理。二、二分算法的介绍二分查找的最优时间复杂度为O(1) 。二分查找的平均时间复杂度和最坏时间复杂度均为 O(logn)。因为在二分搜索过程中,算法每次都把查询的区间减半,所以对于一个长度为n 的数组,至多会进行.原创 2022-05-05 00:12:44 · 178 阅读 · 0 评论 -
【算法基础——第三讲】差分
大家好,我是quicklysleap,算法学习笔记系列持续更新中~~文章目录一、差分的介绍二、差分的运用1.一维差分2.二维前缀和最后一、差分的介绍类似于数学中的求导和积分,差分可以看成前缀和的逆运算。二、差分的运用1.一维差分有原数组: a[1], a[2], a[3], a[4], a[5], …, a[n]前缀和 Si为数组的前 i项和前缀和: S[i] = a[1] + a[2] + a[3] + … + a[i]注意: 前缀和的下标一定要从 1开始, 避免进行下标的转换s原创 2022-05-04 16:40:39 · 1399 阅读 · 0 评论 -
【算法基础——第二讲】前缀和
大家好,我是quicklysleep,欢迎大家光临我的博客,算法学习笔记系列持续更新中~文章目录一、前言二 、前缀和的介绍与运用1.一维前缀和2.二维前缀和最后一、前言前缀和是指某序列的前n项和,可以把它理解为数学上的数列的前n项和。合理的使用前缀和预处理,能大大降低时间复杂度,构造前缀和数组需要O(n)时间复杂度和空间复杂度,查询操作只需要常数时间二 、前缀和的介绍与运用1.一维前缀和原数组: a[1], a[2], a[3], a[4], a[5], …, a[n]前缀和 Si为数组原创 2022-05-04 15:43:04 · 1456 阅读 · 1 评论 -
【算法基础——第一讲】位运算
大家好,我是quicklysleep,欢迎大家光临我的博客,算法学习笔记系列持续更新中~文章目录一、前言二、位运算的介绍三、位运算符的运用1.常用运算符2.常用位运算操作最后一、前言由于位运算直接对内存数据进行操作,不需要转换成十进制,因此处理速度非常快,在信息学竞赛中往往可以优化理论时间复杂度的系数。同时,一个整数的各个二进制位互不影响,利用位运算的一些技巧可以帮助我们简化程序代码。因此熟练的运用位运算可以加快我们的编码速度,并且使我们的代码更加简洁~二、位运算的介绍程序中的所有数原创 2022-05-04 13:12:10 · 404 阅读 · 0 评论