随笔分类 - 算法那些事儿
摘要:这个算法还是有点意思的,需要一些思考量和理解。 如何理解? 欧几里得算法没扩展之前,计算的两个数的最大公约数,比如计算144和24的最大公约数,计算的过程如下: 最开始:144 24 第一次:24 144 % 24 即 24 0 发现直接整数了, 说明24就是144的公约数 ,所以计算结果就是:24
阅读全文
摘要:原理 比如12转成2进制,那么第一次模2后,得到应该是最左边位置的数,然后除2,之后再模2,得到的是左边第2个位置的数。 如下: 12 % 2 = 0 12 / 2 = 6 6 % 2 = 0 6 / 2 = 3 3 % 2 = 1 3 / 2 = 1 (向下取整) 1 % 2 = 1 1 / 2
阅读全文
摘要:思路背景 素数的要求是:只能被其自身和 1整除,所以可得, 素数的倍数一定不是素数。 0和1不在素数考虑的范围内,从2开始,2、3已经知道都是素数,所以可以其为“基”,去掉其倍数的数字。 代码实现的思路 可以0和1,或者false和true来表示,是否被筛去,可以一开始都设置为false,然后通过2
阅读全文
摘要:算法核心 最简单的全排列,比如1,2的全排列是:1,2和2,1,即:1排完了,再排2,理论看很简单,这也直接指导了相应的算法实现: 通过递归,第一项从1到n枚举,相应的第二项从2开始,这其中需要一个散列数组哪些数字被用过了,以免重复。 最后,以最后一个位置的数字作为递归的边界 。 所以,最终实现:递
阅读全文
摘要:关于链表的几点说明 链表的位置: 因为在写带头结点的链表时,默认头结点不存数据,所以可以把头结点的位置看作0,接着从后面第一位有效数据的结点开始为第1位置。**这一点一定要和数组分清楚,特别是用数组写静态链表的时候。 自定义链表的操作: 一定要清楚,开始的位置从头结点,还是从第一个数据结点,不然很容
阅读全文
摘要:一句话说明 堆的本质:**联系实际也可知,有层层递增或递减的关系的,才能堆起来,否者不就倒了吗?**所以,理解堆的最本质一点:每一个堆都是逐层递减或递增的。 而如何实现呢? 最好的实现方式,就是要很直观,甚至是简单粗暴,所以就想到了完全二叉树,完全二叉树特别好的一个性质就是:父结点和子结点的相对位置
阅读全文
摘要:前言碎语 作为一个代码小白,在自学的过程中,**最舒服的好像就是有讲解、有提示、甚至直接是有源码……**然而,照着写永远是无法进步的,因为,很可能最后错了自己都不知道错在了哪! 就比如下面这个,照着MOOC小白教程写的,然,错了,并且错的一点头绪也没有。贴在这,警醒自己!! /* 判断是否是同一颗二
阅读全文
摘要:前言碎语 记得第一次读到关于二叉树的插入与平衡的操作,是在《大话数据结构》里,当然觉得好像有那么一回事,但毕竟纸上得来终觉浅,绝知此事要躬行。看懂了,不代表自己就真的会了。当时算是有一个感性认识吧,因为没有自己动手实践过,所以理解的并不深刻。 今天是重新学习,并且是自己动手实现了一遍,才算有了一点浅
阅读全文
摘要:前言碎语 这因为学习树结构里面的最基本操作了,但是作为小白入门,哪怕是最基础的也会感觉困难重重,所以,最稳的方法:乐观好心态,咱一步一步,一点一点来。 几点说明 树的结构在定义的时候,用的是嵌套结构,即树的左右子树也都是树。 在建立树的时候,每一次只申请一块栈空间,所以需要for循环来调用;BST、
阅读全文
摘要:写点思考性质的文字,最好还是不要太突兀,背景前提什么的还是需要有的…… 平衡二叉树是什么? 我自己的理解: 二叉树里面的完全二叉树就是一种很平衡的树,即按照1-23-4567-89101112131415-……这么一行行分叉下去的数。所以在二叉树的定义里,就有了这样的描述: 一个空树(根本没有结点的
阅读全文
摘要:写在最前面 按照课程讲解的思路来写,逻辑关系能够理解清楚了,但是实际运行起来实在是有问题,虽然在PTA上能够通过。但是我自己看不出问题来,并且,看了一遍又一遍仍然看不出来!(可能自己太笨。。)这就说明有着很严肃的问题! 所以,与其这样纠结,不如按照自己理解的思路来写一遍。 补充一下题目要求 给定两棵
阅读全文
摘要:二叉树 设n0是度为0的结点,即叶子结点,设n1是度为1的结点,设n1为度为2的结点,现在思考这三种结点之间的关系? 一种思考的逻辑:观察结点与结点间边的关系 一种方式: 边的总数为n0 + n1 + n2 - 1,可以看成:只有根结点没有上接的边; 另一种方式: 0 * n0 + 1 * n1 +
阅读全文
摘要:碎语 一直恐惧、一直害怕,也一直躲避。总是沉醉在if、for、while的舒服绵软里,这样是不能有任何进步的! 数据结构是有些难度,但是也只是自己的畏难情结,耐下心,仔细分析,其实并没有什么好畏惧的!(就像操作系统听成了天书,慢一点嘛,慢慢消化和理解)。 一道MOOC的基础题 具体描述摘抄如下: 线
阅读全文

浙公网安备 33010602011771号