会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
瑜琦
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
3
4
5
6
7
8
9
10
下一页
2021年6月3日
算法入门——双指针:归并排序
摘要: 双指针 一、引子 在我早期刷leetcode入门题时就很喜欢用双指针了,下面我来详细说明一下什么是双指针以及双指针的一些应用场合,首先,双指针这个翻译已经很明确的指出了这种编程技巧的思想了,就是定义两个指针,然后对这两个指针操作从而达到降低时间复杂度的目的(如果能使用常数倍空间复杂度来使得时间复杂度
阅读全文
posted @ 2021-06-03 22:15 瑜琦
阅读(384)
评论(0)
推荐(0)
2021年6月2日
算法入门——二分:快速幂
摘要: 快速幂 一、问题描述 现在假设写一个程序计算2^18,那么可以得到代码 for(int i=0;i<18;i++) a=a*2;//a的初值为1。 这个代码可以很轻松的跑出来,但是对于指数为n的时候呢?如果n取10万取10亿呢,显然这个代码效率太低了,因为对于一个足够大的n即使是O(n)也是一个很高
阅读全文
posted @ 2021-06-02 22:12 瑜琦
阅读(284)
评论(0)
推荐(0)
2021年6月1日
算法入门——二分:二分法拓展
摘要: 二分法拓展 一、引子 可以设想一个问题,怎么求?我们日常生活中总是找平方小于2和平方大于2的两个数,那么肯定介于这两个数之间,然后我们让两个数不断逼近,左边加一点,右边减一点,最终我们一定能求得一个近似的结果,其实采用二分法也可以实现求这个功能。 二、算法描述 我们可以定义一个区间[1,n]那么的值
阅读全文
posted @ 2021-06-01 22:02 瑜琦
阅读(171)
评论(0)
推荐(0)
2021年5月31日
算法入门——二分:二分查找
摘要: 二分查找 一、引子 设想一个猜数字游戏,A从给定的区间中选择一个数字,B要猜这个数,如果B猜的数大了,就高速B猜大了,如果B猜的数小于A选择的数,就告诉B猜小了。理论上经过有限次的猜数后,B一定可以猜到这个数。 二、算法思想 通过上述猜数字游戏可以发现B每次猜数字时,其实都对给定的区间进行了压缩,最
阅读全文
posted @ 2021-05-31 21:59 瑜琦
阅读(116)
评论(0)
推荐(0)
2021年5月30日
算法入门——区间贪心
摘要: 区间贪心 一、区间不相交问题 问题描述:给出N个开区间(x,y),要求从这些开区间中选择尽可能多的开区间,使得这些开区间两两之间没有交集 例如:对于(1,3)、(2,4)、(3,5)、(6,7)来说,可以选出最多的三个区间(1,3)、(3,5)、(6,7) 这就是区间选择问题,所以在求解时,应该尽可
阅读全文
posted @ 2021-05-30 22:02 瑜琦
阅读(214)
评论(0)
推荐(0)
2021年5月29日
算法入门——贪心
摘要: 贪心 一:简单贪心 贪心算法通过把整个算法拆分成多个部分,并且让每个部分达到局部最优,从而使算法整体达到最优,为了验证该算法是最优的还需要对算法进行证明,一般采用数学归纳法或反证法,假设不能导致最优解,然后通过推导得出矛盾,从而证明最优。但是一般是很难做到严谨证明的,所以不要纠结对贪心算法最优的证明
阅读全文
posted @ 2021-05-29 22:32 瑜琦
阅读(64)
评论(0)
推荐(0)
2021年5月28日
算法入门——递归(下)n皇后问题
摘要: 递归(下) 一、全排列 把1~n这n个整数按某个顺序摆放叫这n个数的一个排列,全排列是指把这n个数所能形成的所有排列都列举出来,例如对1、2、3这个数,(1、2、3),(1、3、2),(2、1、3),(2、3、1),(3、1、2),(3、2、1)就是1、2、3的全排列。 现给出1~n,要求实现它的全
阅读全文
posted @ 2021-05-28 22:16 瑜琦
阅读(290)
评论(0)
推荐(0)
2021年5月27日
算法入门——递归(上)
摘要: 分治(递归) 一、递归 定义:通俗来讲递归就是一个函数反复调用自身,每次把函数的参数进行压缩,直到这个参数可以很便捷的带入函数得出结果,然后将这个结果不断向上返回计算上层函数,就形成了递归; 递归函数两个重要概念 递归边界:分解的尽头 递归式(递归调用):分解问题的主要方法 下面给出例子来理解递归
阅读全文
posted @ 2021-05-27 22:15 瑜琦
阅读(129)
评论(0)
推荐(0)
算法入门——散列
摘要: 散列hash 一、散列的定义 定义:散列就是将元素带入一个函数进行计算从而得到一个整数,要求这个计算结果可以尽可能唯一的标识这个元素,而这个函数就是散列函数H,如果元素转换前是key,那么转换后就是整数H(key) 上面的定义可能很抽象,我尝试通俗解释一下,就是说我有若干个元素,这个元素可以是任意类
阅读全文
posted @ 2021-05-27 21:48 瑜琦
阅读(772)
评论(0)
推荐(0)
算法入门——排序
摘要: 算法入门篇(简单的排序算法) 一、简单选择排序 对一个序列A中的元素A[1]~A[n],令i从1到n枚举,进行n躺操作,每次操作从待排序部分[i,n]中选择最小的元素令其与A[i]进行交换,这样就会形成当前有序区间[1,i],重复操作n趟后,所有元素有序 核心代码如下: for(int i=1;i<
阅读全文
posted @ 2021-05-27 21:06 瑜琦
阅读(64)
评论(0)
推荐(0)
上一页
1
···
3
4
5
6
7
8
9
10
下一页
公告