随笔分类 -  算法

摘要:好久好久没有更过这种博客了,原本打算是大一下就把排序算法学完全部,顺便更新完博客的。但是被骗去硬件了(我这个蒟蒻,捧着一块15,还在傻傻的乐呵つ﹏⊂)。一拖就给忘了,果然脑子不太好使。 之所以,今天想起写排序算法的博客,是因为再PAT上遇到了一道@#%!的题目(点刚刚地方转跳),用到了插入和归并,写 阅读全文
posted @ 2020-01-20 16:16 秦_殇 阅读(251) 评论(0) 推荐(0)
摘要:位运算判断2的n次幂: 举个栗子,n = 8;则二进制表示就为1000,n-1则为 0111 取&刚好等于0 嘿嘿,巧妙吧。 再举个栗子,n = 7; 则二进制为 0111,n-1则为0110 取&则不为0 嘿嘿,也没问题,不过这个算法仅限于无符号数。 bool is_power_of_2(unsi 阅读全文
posted @ 2019-12-07 13:39 秦_殇 阅读(2356) 评论(0) 推荐(0)
摘要:递归算法——交换二叉树的左右子树: 通过后续遍历实现: 完成遍历之后进行交换 阅读全文
posted @ 2019-10-17 16:12 秦_殇 阅读(792) 评论(0) 推荐(0)
摘要:是不是很经典,还记得什么是素数吗。不记得,没事,我不讲。连接在这自己转跳 (●ˇ∀ˇ●)。我比较懒。看完之后让我们来思考一下如何求素数, 首先回顾一下素数的定义: 质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。 由这一条限制可得出一个结论: 存在一个数n,若n被[2,n-1] 阅读全文
posted @ 2019-10-04 13:02 秦_殇 阅读(463) 评论(0) 推荐(0)
摘要:KMP一个非常经典的字符串模式匹配算法,虽然网上有很多kmp算法的博客,但是为了更好的理解kmp我还是自己写了一遍(这个kmp的字符串存储是基于堆的(heap),和老师说的定长存储略有不同,字符串索引从0开始) 先来说说 KMP 的历史吧。 一、背景 KMP算法是一种改进的字符串匹配算法,由D.E. 阅读全文
posted @ 2019-09-26 20:05 秦_殇 阅读(533) 评论(0) 推荐(0)
摘要:又是洛谷题,要不是有小姐姐不会,我才不想动脑子。先贴一下题目地址https://www.luogu.org/problem/P1002 再贴一下题目: 我们读一下题目,这可不比学校的**算法题,读完一遍没啥感觉。我意识到需要画图了,(噢,我垃圾的画图技术) 因为卒只能向下或者向右,也就是说,除了第一 阅读全文
posted @ 2019-09-10 21:10 秦_殇 阅读(680) 评论(0) 推荐(0)
摘要:这周的问题终于有些难度了,终于不是一眼看过去就有能写出大概的题目了,还有就是,我又找不到题目了,所以去网上扒了一下,英语的: Packets Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 28329 Accepted: 9291 阅读全文
posted @ 2019-09-05 15:05 秦_殇 阅读(2938) 评论(0) 推荐(0)
摘要:上周因为社团纳新拉下了上一次的题,这周补上的算法作业。 上周的算法题相当简单,大家基本应该是耳熟能详——校门口的数,题目如下: 图找不到了,去洛谷上偷了一下题目,嘿嘿。 读完这道题,马上发现这道题有两个坑。第一个坑是,去重 ,不能砍过又砍,斩草除根有点说不过去了,第二个坑点是,两端都有树,记得加1。 阅读全文
posted @ 2019-09-03 21:15 秦_殇 阅读(462) 评论(0) 推荐(0)
摘要:四、计数排序: 个人觉得吧,计数排序是最简单的排序算法,就是特别浪费空间,接下来,来点严谨一些的语言: 计数排序不是基于比较的排序算法,其核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。 作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。 排序思路: 这一本正经的 阅读全文
posted @ 2019-08-01 16:16 秦_殇 阅读(347) 评论(0) 推荐(0)
摘要:说到查找算法,最简单最暴力的算法就是一个个比较,确定是否为所需要的值。 例如, 0,1,2,3,4,5,6,7,8,9 十个数中查找是否存在数 x , 那么暴力的方式就是 1. 取出第一个数 0 与 x 比较,若相等则返回索引 2. 取出第二个数 1 与 x 比较,若相等则返回索引 3. 取出第三个 阅读全文
posted @ 2019-07-31 09:25 秦_殇 阅读(264) 评论(0) 推荐(0)
摘要:二、选择排序: 选择排序十分的简单和直观,其的工作原理是每一次从待排序的数组中选出最小(或最大)的一个元素,存放在序列的起始位置。因此,选择排序也是像我们这种萌新最容易写出来的排序算法。 排序步骤: 重复如此直到完成排序 下面举个栗子: 有一个数组其元素如下 5 1 4 3 2 6 7 0 9,其选 阅读全文
posted @ 2019-02-04 21:24 秦_殇 阅读(271) 评论(0) 推荐(0)
摘要:三、插入排序: 插入排序是一种非常简单的排序,它的实现难度低于冒泡和选择。(我第一个for循环写出的排序就是插入排序)插入排序类似整理扑克牌,将每一张牌插到其他已经有序的牌中适当的位置。 基本思想: 插入排序由N-1趟排序组成,对于P=1到N-1趟,插入排序保证从位置0到位置P上的元素为已排序状态。 阅读全文
posted @ 2019-01-28 21:43 秦_殇 阅读(164) 评论(0) 推荐(0)
摘要:排序算法顾名思义,给元素排序,无论是从小到大也好还是从大到小也罢,都归属于排序,作为一个刚入坑但又在能力上有所欠缺的萌新来说排序算法是简直难以逾越的天坑,我曾经见过一个朋友冒泡排序敲了一周QAQ,勉强敲了出来。我写这些博客的原因,一是学习整理巩固排序算法,二是帮助有需要的朋友们。 我坚信一句话:坚持 阅读全文
posted @ 2019-01-20 23:42 秦_殇 阅读(404) 评论(0) 推荐(0)