java版数据结构和算法
本专栏是使用java实现基本数据结构
韩信的兵
go on
展开
-
java实现单向链表和优化
1.链表的时间复杂度分析查询元素时间复杂度链表是不支持随机访问的,在链表中只有从头节点开始一个一个往下找,找到查询的元素为止,比如链表的长度为n,最好的情况是头节点就是需要找的元素,那么就是一个时间单元1*unit_time,,最坏的情况是最后一个节点是需要找的元素,那么就是n*unit_time,那么平均时间复杂度就是n/2*unit_time;根据大O推导出,时间复杂度为O(n);...原创 2019-07-08 16:13:55 · 452 阅读 · 0 评论 -
先从算法时间复杂度分析开始
1.为什么要进行复杂度分析在编写和使用数据结构和算法的时候,怎么去比较它们之间的优劣,需要一个评判标准,目前主要的分析维度是两方面,时间和空间,什么意思呢,时间复杂度分析就是这个算法在一定的运算量级下的消耗时间,时间越少越优,空间复杂度分析可以看作是占用内存空间的大小,空间越小越优。2.时间复杂度分析大O复杂度表示法如下代码public int sum(int n) { ...原创 2019-07-08 10:18:16 · 257 阅读 · 1 评论 -
怎么学习数据结构和算法
1.先叨叨几句说实话,之前代码的时候很少考虑数据结构,一方面是因为写的主要是业务代码,另外一方面是因为很多编程语言都已经封装好了基本的数据结构,拿来即用,最多也就了解基本的一个数组和链表的特点以及效率问题,因为最近重新找工作,也趁着这段时间好好的了解了数据结构这一块,有了深入的了解后,感觉还确实不一样,因为只有了解后,才知道到每种数据结构特点及应用场景,甚至针对特殊场景进行结构优化,当然,一般...原创 2019-07-07 22:32:27 · 887 阅读 · 1 评论