在描述算法复杂度时,经常用到o(1), o(n), o(logn), o(nlogn)来表示对应算法的时间复杂度, 这里进行归纳一下它们代表的含义: 这是算法的时空复杂度的表示。不仅仅用于表示时间复杂度,也用于表示空间复杂度。 O后面的括号中有一个函数,指明某个算法的耗时/耗空间与数据增长量之间的关 ...
分类:
编程语言 时间:
2018-08-22 21:54:11
阅读次数:
182
给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列。 数学表达式如下: 说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1) 。 示例 1: 示例 2: ...
分类:
其他好文 时间:
2018-08-21 23:05:31
阅读次数:
261
给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例 1: 输入: [1,2,3,4,5,6,7] 和 k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右旋转 1 步: [7,1,2,3,4,5,6] 向右旋转 2 步: [6,7,1,2,3,4,5] 向右旋转 ...
分类:
编程语言 时间:
2018-08-21 00:25:15
阅读次数:
124
一面(36分钟)芝麻信用hashmap和hashtable区别为什么产生死锁jvm类加载java反射获取私有属性,改变值反射用途所用数据库项目难点,问题如何解决项目中遇到的问题项目中遇到最自豪的地方会什么算法二面(44分钟)支付宝创新讲项目数据库乐观锁使用状态机如何解决状态机不对问题如何分库分表MySQL极限HashMap源码设计一个线程安全的HashMap快排的实现,时间复杂度和空间复杂度会什么
分类:
编程语言 时间:
2018-08-20 16:34:12
阅读次数:
186
LeetCode:递增的三元子序列【334】 题目描述 给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列。 数学表达式如下: 说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1) 。 示例 1: 示例 2: 题目分析 Java题解 ...
分类:
其他好文 时间:
2018-08-19 01:03:07
阅读次数:
141
归并排序体现了分治思想,时间复杂度是O(nlogn),空间复杂度是O(n)。 归并排序是将序列不断二分,最终分成单个元素,再两两合并,最终达到整个序列有序。 1 void msort(int l,int r) { 2 if(l==r) return; //划分到单个元素就返回 3 int m=l+( ...
分类:
编程语言 时间:
2018-08-18 17:55:38
阅读次数:
152
浅谈遗传算法: "https://www.cnblogs.com/AKMer/p/9479890.html" Description $mzf$在踏上寻找$oxy$的路程之后不小心碰到了大魔王$fater$。 大魔王看了看$mzf$的命运,心生怜悯,便给$mzf$和自己做一个交换的机会。 这个交换是 ...
分类:
编程语言 时间:
2018-08-18 14:24:52
阅读次数:
483
判断一个算法的效率时,操作数量中的常数项和其他次要项常常可以忽略,只需要关注最高阶项就能得出结论。 如何用符号定性的判断算法的效率呢? 算法的复杂度: 时间复杂度: 算法运行后对时间需求量的定性描述。 空间复杂度: 算法运行后对空间复杂度的定性描述。 数据结构课程重点关注的是算法的效率问题,因此,整 ...
分类:
编程语言 时间:
2018-08-18 10:33:11
阅读次数:
131
常见的时间复杂度如下: 常见的时间复杂度的比较: 实例分析: 从上图的分析中,最坏的情况更具有现实的意义。 当算法在最坏的情况下仍能满足需求时,可以推断,算法的最好情况和平均情况都满足要求。 在数据结构课程中,在没有特殊说明时,所分析算法的时间复杂度都是指最坏时间复杂度。 算法的空间复杂度: 空间复 ...
分类:
编程语言 时间:
2018-08-18 10:30:13
阅读次数:
265
树状数组概念: 树状数组是一种非常优秀&神奇的数据结构。可以做到区间查询、单点修改,两种操作的复杂度都为log(n),其空间复杂度为O(n)。 理解树状数组的关键在于理解二进制,曾有一个大神对我说:“这个世界本来就是二进制的,人非要主观的构建一个十进制” ,我并没有能力证明这句话的正确性,但我认为这 ...
分类:
编程语言 时间:
2018-08-16 20:54:17
阅读次数:
938