摘要: 快速排序算法可能是应用最广泛的算法,它流行的原因是它实现简单、适用于各种不同的输入数据且在一般应用中比其他排序算法都要快得多。快速排序算法引人注目的特点包括它是原地排序(只需要一个很小的辅助栈),且将长度为N的数组排序所需的时间和NlgN成正比。——算法(第四版) p182 快速排序算法是一种分治的 阅读全文
posted @ 2020-01-03 10:12 ELAIRS 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 传统数组实现的队列有缺陷,当多次入队出队后,队头指针会后移,当队尾指针达到数组末尾时,会提示队列已满,导致数组前部分空间被浪费。如果当队尾和队头指针到达数组末尾时能从数组[0]继续添加数据,可以提升数组空间利用率。 循环数组也包含队头,队尾指针。每次入队/出队 都利用+1取模的方法(加一后如果大于数 阅读全文
posted @ 2020-01-02 10:24 ELAIRS 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 栈 是一种基于后进先出(LIFO)策略的集合类型。当邮件在桌上放成一叠时,就能用栈来表示。新邮件会放在最上面,当你要看邮件时,会一封一封从上到下阅读。栈的顶部称为栈顶,所有操作都在栈顶完成。 前面提到的新邮件,就是在栈顶入栈(push),阅读的时候从栈顶取出一封就是出栈(pop)。就像下面这个图一样 阅读全文
posted @ 2020-01-02 09:58 ELAIRS 阅读(601) 评论(0) 推荐(0) 编辑
摘要: 做JAVA实验的时候用foreach遍历一个ArrayList集合,并且当集合中的某个元素符合某个值时删除这个元素。写完运行时抛出了ConcurrentModificationException异常 当时代码与下方类似,在foreach循环时判断元素的值,当元素的值与2相等时删除 1 package 阅读全文
posted @ 2019-10-09 09:46 ELAIRS 阅读(552) 评论(0) 推荐(0) 编辑
摘要: 做实验时设计了一个类,在类中的两个不同函数中分别创建了两个Scanner对象,并且在各个函数的结尾使用了close()方法,结果在运行时产生了NoSuchElementException异常。 实验的中的类和下方代码差不多,记录一下异常的原因。 运行结果: 1212Exception in thre 阅读全文
posted @ 2019-10-08 23:38 ELAIRS 阅读(1740) 评论(0) 推荐(1) 编辑