算法与数据结构
wzj_110
天道酬勤
展开
-
基本数据结构
一、线性表(1)线性表的数组表示定义:n个数据元素的有限序列概念:前驱和后继元素线性表的顺序:用一组地址连续的存储单元依次存储线性表的数据元素元素在计算机内的"物理位置相邻"来表示线性表线性表中数据元素之间的逻辑关系;数组来描述顺序存储结构特点:数组实现的线性表优点在于可以通过下标来访问或者修改元素(元素之间的关系),比较高效;主要缺点在于插入和删除的花费开销较大,比如当在第一个位置前插入一个元素...原创 2018-04-07 18:12:50 · 147 阅读 · 0 评论 -
递归专题
一、递归三要素(1)明确递归终止条件;---不再往下进行了 (2)给出递归终止时的处理办法; (3)提取重复的逻辑,缩小问题规模举例1:斐波那契数列(兔子问题)问题描述: 已知一对兔子每一个月可以生一对小兔子,而一对兔子出生后,第三个月开始生小兔子,假如一年内没有发生死亡,则一对兔子开始,第N个月后会有多少对?代码:// 方法1:程序员写法 public static int fi...原创 2018-04-07 12:33:23 · 356 阅读 · 0 评论 -
排序算法简单涉及(三种)
1、算法复杂度2、稳定性3、适用场景4、对应的Java代码分析来源:以下面几个排序为例一、冒泡排序特点:简单的排序算法;它会遍历若干次要排序的数列,每次遍历时,它都会从前往后依次比较相邻两个数的大小;判定--如果前者比后者大,则交换它们的位置(升序)。这样一次遍历之后,最大的元素在数列末尾!循环--采用相同的方法再次遍历时,第二大元素被排列在最大元素之前。目标--重复此操作,直到整个数列都有序为止...原创 2018-04-07 12:07:04 · 1048 阅读 · 0 评论 -
集合Set和Map之哈希表和链表结构浅谈
哈希表数组中元素的值和位置有确定(一一对应)的对应关系,这样的数组叫做哈希表(散列表),这种对应关系叫做映射(类似数学中的映射),实际是函数关系。哈希表最大的优点:是就是把数据的存储和查找消耗的时间大大降低,几乎可以看成是常数时间----查询速度快;其次是编码比较容易代价:仅仅是消耗比较多的内存。然而在当前可利用内存越来越多的情况下,用空间换时间的做法是值得的。形如:index原创 2017-11-17 12:53:58 · 1181 阅读 · 0 评论 -
递归专题
一、递归三要素(1)明确递归终止条件;---不再往下进行了 (2)给出递归终止时的处理办法; (3)提取重复的逻辑,缩小问题规模举例1:斐波那契数列(兔子问题)问题描述: 已知一对兔子每一个月可以生一对小兔子,而一对兔子出生后,第三个月开始生小兔子,假如一年内没有发生死亡,则一对兔子开始,第N个月后会有多少对?代码:// 方法1:程序员写法 public static int fi...原创 2018-06-04 23:31:53 · 257 阅读 · 0 评论 -
排序算法简单涉及
1、算法复杂度2、稳定性3、适用场景4、对应的Java代码分析来源:以下面几个排序为例一、冒泡排序特点:简单的排序算法;它会遍历若干次要排序的数列,每次遍历时,它都会从前往后依次比较相邻两个数的大小;判定--如果前者比后者大,则交换它们的位置(升序)。这样一次遍历之后,最大的元素在数列末尾!循环--采用相同的方法再次遍历时,第二大元素被排列在最大元素之前。目标--重复此操作...原创 2018-08-09 20:52:26 · 188 阅读 · 0 评论 -
程序效率--空间复杂度和时间复杂度
一、概念(1)时间复杂度 我们为什么要引入这些个概念呢?因为我们想要的是执行一个算法耗费的时间,这个时间理论上可以得到,但是,要得到这个时间就必须要上机测试,但是有这个必要吗?我们需要知道的是哪一个算法需要的时间多,哪一个算法需要的时间少,这样就可以了。而且算法的耗时和语句的执行次数是成正比的,即语句执行越多,耗时越多,这也就是我们引入概念的原因。 一般情况下,算法...原创 2018-04-01 22:16:45 · 1326 阅读 · 0 评论