随笔分类 -  算法心得

摘要:好久不学算法了,好多东西都忘了,所以回来整理一下原来学过的东西,这里排序都默认以升序为例 先说3个简单的,时间复杂度为O(n^2) 1.冒泡排序 将相邻两个数进行比较,如果后者较小,则交换,这样每次结束后,都能将第i大的数放到正确的位置 2.选择排序 第一次在0~n-1的范围内寻找最小值,将其放到0 阅读全文
posted @ 2018-01-28 20:57 Eastruo 阅读(206) 评论(0) 推荐(0)
摘要:首先,你得先知道任意一个合数可以拆分成若干个素数之积 例如:24=2*2*2*3 然后就简单了,我是先取得一定量的素数(用之前写的素数筛),而后看能否整除,能就继续,不能就除下一个素数。 贴代码: 貌似有更优化的方法,尚未学习,等以后学了再更 阅读全文
posted @ 2017-11-15 11:21 Eastruo 阅读(458) 评论(0) 推荐(0)
摘要:看着空荡荡的博客不知道写些什么,写些以前的心得吧 素数算法比较的常用,这次就写它了。 这里我给出自己常用的写法 写法1: 没有太多好讲的地方,就这几行,思路非常简单,只是把最基础的内层循环j<=n替换成了j<=sqrt[i],小优化了一下而已 写法2:素数筛 非常常用的一个算法,思路也很简单,每找到 阅读全文
posted @ 2017-11-12 20:34 Eastruo 阅读(678) 评论(0) 推荐(0)
摘要:这篇博文主要是方便我自己查找使用,网上讲kmp算法的博文已经很多了,大家如果想看其他比较详细的理解过程可以移步别处。 kmp算法的核心部分在于next表的计算,这里我贴一下我自己常用的板子(kuangbin大神的板子) 这版代码next[0]的值取的是-1 下面说一下常考的next值的快速求法(以n 阅读全文
posted @ 2017-10-25 14:39 Eastruo 阅读(153) 评论(0) 推荐(0)
摘要:括号匹配,算是字符串处理中的一个问题,比较常见,这里就总结一下大体的思路,附赠我的个人代码。 大体思路:数据结构选用栈,读到左括号时入栈,读到右括号时判断是否匹配,匹配则左括号出栈,非括号字符则继续往下读 代码如下: 给出另一种写法,思路类似,只是代码形式不同 阅读全文
posted @ 2017-09-21 11:05 Eastruo 阅读(5268) 评论(0) 推荐(2)