随笔分类 -  算法

算法复习整理,请大神们指教
摘要:归并排序,同样是利用分治思想的典型算法例子,下面简单总结下归并排序。 一、归并的概念 归并是这样一种概念,它针对两个或者多个有序的数组,是合并这多个有序数组并进行排序的一种手段,它的主要处理方法是每次都找出比较各个数组的首个元素(假设从左边开始排序而且是升序的方式),找出他们之间的最小值,将其拷贝到 阅读全文
posted @ 2017-03-31 10:58 CoderLcp 阅读(510) 评论(0) 推荐(0)
摘要:学习排序算法也有一段时间,一直没有好好整理下排序算法的相关知识,排序在算法中是最基础也是最重要的,所以有必要自己进行一番整理,在提高领悟算法本质的同时以备以后自己复习,顺便也将自己领悟到的一些思想进行记录。 下面简单整理下快排的算法感悟,当然,个人觉得领悟快排的核心思想分治才是学习这个算法的最重要目 阅读全文
posted @ 2017-03-28 22:49 CoderLcp 阅读(798) 评论(0) 推荐(0)
摘要:前面总结了一下个人对递归的理解,接下来本来继续记录下递归与树这种常用数据结构的恩怨情仇。 一、树的概念 恩,话不多说,理解树最好的方案之一就是看下面的丑图: 恩,没错,树,其实可以看成是一个链表,只不过每个链表节点有三个point罢了。(当然,用数组也可以实现树,这个不讨论。) 上面这种树叫做三叉树 阅读全文
posted @ 2017-03-19 15:43 CoderLcp 阅读(9224) 评论(0) 推荐(1)
摘要:算法中,递归是一种非常重要的概念,它在处理很多问题中都具有非常简洁优雅的程序实现,同时,使用递归解决一些问题解决方案依赖于同样方法步骤的过程非常简单快速(当然,前提是理解了递归的整个过程)。 然而,刚刚接触递归这个概念时,很多人都会觉得有点难以理解:自己调用自己,不断循环,直到某个条件终结递归?这尼 阅读全文
posted @ 2017-03-19 11:25 CoderLcp 阅读(742) 评论(0) 推荐(0)
摘要:上一篇也提到,栈其实是一种很重要的数据结构,下面简单讲解下栈是如何实现四则运算的。 在此之前,需要说明的是,很多编程语言在进行四则运算的时候,都不是直接运用中缀表达式进行运算的,一般会将中缀表达式转换为后缀表达式然后利用栈进行具体的运算。因为,计算机无法识别所谓的先乘除后加减的运算顺序的,而且,一旦 阅读全文
posted @ 2017-03-19 10:08 CoderLcp 阅读(9143) 评论(0) 推荐(0)
摘要:好吧,这个没什么好讲的,写过java代码的人估计一直都在用ADT, ADT,其实就是abstract data type,抽象数据类型,额,其实他丫就是,java 的class...... 不过关于ADT,还是有些概念要梳理下 一、封装性 ADT封装了数据以及对应的数据操作(方法/函数),它理所当然 阅读全文
posted @ 2017-03-18 20:35 CoderLcp 阅读(822) 评论(0) 推荐(0)
摘要:下面整理数据结构中的链表(主要是用java写的代码) 一、什么是链表 1、首先理解链表的节点概念 个人理解:链表节点,包含一个数据和一个内存地址,内存地址指向下一个同样类型的链表节点,这样说有种绕起来了像递归的感觉(不过链表和递归还是有点类似的:自己指向自己,不断积累),具体可以看下图: ok,上图 阅读全文
posted @ 2017-03-18 20:15 CoderLcp 阅读(438) 评论(0) 推荐(0)
摘要:一、算法复杂度的概念 1、空间复杂度 算法运行所需要的内存空间,它和算法每次运行的数据数目或者说程序段所需要的变量个数成正比。 2、时间复杂度:算法的主要衡量指标,它主要和算法实现所需要的指令个数成正比。在分析算法时间复杂度的时候,一般用O(读作大o符号)进行表示。 大O符号表示这样一种概念:某个算 阅读全文
posted @ 2017-03-18 19:27 CoderLcp 阅读(3372) 评论(0) 推荐(0)