摘要:
##栈是一种数据结构,先进后出,只支持一端进行插入和弹出操作,可以用数组进行模拟实现,现在编程语言中都进行了封装,可以直接调用 ###插入:插入时就是栈顶指针指向的内存区域存放当前要插入的元素,然后栈顶指针自增即可 ###弹出:弹出就是栈顶指针自减,原来栈顶元素溢出相当于弹出 ###查询栈顶是否为空 阅读全文
posted @ 2022-07-11 20:55
LYL233
阅读(26)
评论(0)
推荐(0)
摘要:
##快速模幂算法就是将指数变成二进制数来计算,每次按照底数的二进制次方进行计算,因为底数相乘指数相加,又模和乘可以相互变化,所以最后可以一边模一边乘,最后得出的结果还是正确的。 例如:$$10^4 mod 6可以转变为(10^2 * 10^2) mod 6,可以变化为(10^2 mod 6)* (1 阅读全文
posted @ 2022-07-11 20:41
LYL233
阅读(1303)
评论(0)
推荐(0)
摘要:
##前缀和用于在O(1)的时间内求某一给定的数组的其中任意长度的和,它其实就是对一给定了的数组计算得出一个前缀和数组,再利用这个计算出来的数组去求某一段的和 例题链接 #include <iostream> using namespace std; int n, m; const int N = 1 阅读全文
posted @ 2022-07-11 16:24
LYL233
阅读(35)
评论(0)
推荐(0)
摘要:
跳转地址 ##归并排序的重点是合并,利用双指针算法,排序的是否稳定是指如果两个数的大小相同,在经过排序后相对位置不变,那么这个排序就是稳定的,否则就是不稳定的 ##归并排序的思路是将数组按照mid分开成为两部分,然后先进行递归再排序,排序时按照双指针算法进行排序,用temp存放结果最后将temp中的 阅读全文
posted @ 2022-07-11 16:11
LYL233
阅读(34)
评论(0)
推荐(0)
摘要:
题目链接 ##快速排序板子题,练习快速排序的代码,下面是排序算法的一些对比 ##快速排序的思路图 ##快速排序的代码 #include <iostream> using namespace std; const int N = 1e5 + 10; int q[N]; int quick_sort(i 阅读全文
posted @ 2022-07-11 13:14
LYL233
阅读(28)
评论(0)
推荐(0)
摘要:
#数字的全排列 跳转链接 ##深度优先搜索就是先走到底走到无路可走然后再进行回溯的算法,用于全排列打表操作,数字的全排列操作就是每一个序列需要包含从1到n所有的数字,但是数字不能重复,不能和原来有过的序列相同 ###思路:开一个bool数组用于记录当前下标的数字是否被使用过,同时开一个path数组用 阅读全文
posted @ 2022-07-11 10:09
LYL233
阅读(61)
评论(0)
推荐(0)
摘要:
#桶排序 题目地址 ##数据范围是1到1000的随机数,每个出现的次数小于100次,且重复的数字只保留一个,所以很显然利用桶排序的知识即可轻松ac ###桶排序就是开一个比给定数据范围略大的一个数组(防止数组越界),且数组内存放的数字全部为0,然后对题目输入的数据进行遍历,也可以在读入时就进行处理这 阅读全文
posted @ 2022-07-11 08:43
LYL233
阅读(145)
评论(0)
推荐(0)

浙公网安备 33010602011771号