Fork me on GitHub
上一页 1 ··· 5 6 7 8 9
摘要: 之前分析Comparor接口的时候,看到方法居然有实现体,从吃惊到释然,一定是JDK8的新特性(原谅我之前一直用的1.7)。 在JDK8之前,interface中有变量和方法,其中变量是public、final、static的,方法是public、abstract的,因此在interfacer中不需 阅读全文
posted @ 2018-03-08 22:14 爱跑步的星仔 阅读(992) 评论(0) 推荐(0) 编辑
摘要: 堆是一种树,由它实现的优先级队列的插入和删除的时间复杂度都是O(logN)。而有序数组尽管删除最大数据项的时间复杂度为O(1),但是插入需要O(N)时间。当速度非常重要,且有很多插入操作时,可以选择堆来实现优先级队列。 ps:这里的“堆”是指一种特殊的二叉树,不要与java和C++等编程语言里的“堆 阅读全文
posted @ 2018-03-01 12:38 爱跑步的星仔 阅读(416) 评论(0) 推荐(0) 编辑
摘要: 为什么要用树? 在有序数组中用二分查找法查找数据项很快,查找数据的时间为O(logN),但是插入数据项很慢,平均来讲要移动数组中一半的数据项。而在链表中插入和删除操作很快,但是查找必须从头开始,平均需要访问N/2个数据项。就这样,树产生了,既能像链表那样快速的插入和删除,又能像有序数组那样快速查找。 阅读全文
posted @ 2018-02-09 14:20 爱跑步的星仔 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 代码很简单,功能也很简单,对象通过这个接口来实现序列化和反序列的。下面来看看小例子。 这是最常见的bean,但是Eclipse有提示:The serializable class Person does not declare a static final serialVersionUID fiel 阅读全文
posted @ 2018-01-31 20:39 爱跑步的星仔 阅读(269) 评论(0) 推荐(0) 编辑
摘要: (一) 归并排序的运行时间为O(N*logN),一个缺点是他需要在存储器中有另一个大小等于被排序的数据项数目的空间。 归并算法的中心是归并两个已经有序的数组。 结果: 方法体有三个while循环,第一个while循环沿着arrayA和arrayB走,比较它们的数据项,并且复制较小的数到array。第 阅读全文
posted @ 2018-01-23 16:54 爱跑步的星仔 阅读(218) 评论(0) 推荐(0) 编辑
摘要: (一) 栈,后进先出,只允许访问一个数据项:即最后插入的数据项。栈操作: push入栈:第一步指针上移一个单位,第二步将数据插入到这个存储单元; pop出栈:第一步移除指针指向的数据项,第二步指针下移一个单位,指向新的栈顶元素; peek查看:不操作元素,只是查看栈顶元素的值; 结果: 上面的实现是 阅读全文
posted @ 2018-01-20 09:37 爱跑步的星仔 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 最近在读java数据结构与算法,很老的一本书了,正在学习第三章简单排序,将所得记录下来。 (一)冒泡排序 这种排序最简单也最容易理解,最基本的规则:1,从第一个位置开始,比较与下个位置的数据大小;2,如果第二个位置大,则交换位置;3,向右移动一个位置,重复第一个步骤。 这样进行到最后,虽然没有全部排 阅读全文
posted @ 2018-01-17 14:48 爱跑步的星仔 阅读(181) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9