一、排序: 1.选择排序: 2.交换排序: 3.插入排序 二、查找: 三、节点遍历: 四、数组去重: 时间复杂度:找出算法中的基本语句->计算基本语句的执行次数的数量级->用大O记号表示算法的时间性能。 空间复杂度:存储算法本身所占用的存储空间+算法的输入输出数据所占用的存储空间+算法在运行过程中临 ...
分类:
编程语言 时间:
2016-12-23 19:07:49
阅读次数:
190
题目链接 用两个布尔数组分别维护每个行/列是否被插过旗帜,最后枚举每一行、列统计答案即可。空间复杂度O(n+m)O(n+m),时间复杂度O(n+m+k)O(n+m+k)。 ...
分类:
其他好文 时间:
2016-12-19 11:40:17
阅读次数:
243
最容易想到的思路是新开一个长度为n的全零list p[1~n]。依次从nums里读出数据,假设读出的是4, 就将p[4]从零改成1。如果发现已经是1了,那么这个4就已经出现过了,所以他就是重复的那个数。这个解法的时间复杂度是O(N)。但是由于本题要求空间复杂度是O(1)。所以不能用。 可以用二分法, ...
分类:
其他好文 时间:
2016-12-16 14:35:14
阅读次数:
132
1.最容易想到的办法 我们可以用最简单的办法来找到一个数组中任意大小的数字,那就是按照某一个排序方式将数组的所有元素进行排序,然后按需取出来就可以,知识这种方式的时间复杂度和空间复杂度比较大,所以,有了下面这种方式 2.通过设置两个变量来进行判断 这种方式可以只通过一遍扫描数组即可找到第二大数,具体 ...
分类:
编程语言 时间:
2016-12-10 19:00:16
阅读次数:
270
一个问题由5部分组成:初始状态,行动集合,转移模型,目标测试函数,路径代价函数。问题的环境用状态空间表示。状态空间中从初始状态到达目标状态的路径是一个解。 可以从完备性、最优性、时间复杂度和空间复杂度等方面来评价一个搜索算法。 主要分为:无信息搜索策略(盲搜)、有信息搜索策略(启发式搜索) 无信息搜 ...
分类:
其他好文 时间:
2016-12-10 16:00:50
阅读次数:
160
Floyd-Warshall算法是解决任意两点间的最短路径的一种算法,可以正确处理有向图或负权(但不可存在负权回路)的最短路径问题,同时也被用于计算有向图的传递闭包。 Floyd-Warshall算法的时间复杂度为O(N^3),空间复杂度为O(N^2)。 Floyd-Warshall算法的原理是动态 ...
分类:
编程语言 时间:
2016-12-09 00:33:07
阅读次数:
260
并不是很懂wikipedia上面说快排的空间复杂度最坏情况是O(NlogN)啊,难道不是空间复杂度平均O(logN),最坏O(N)么……原地快排难道不是只要算递归栈深度就好了么……有谁给我解释一下啊(评论区orz)。 快排的核心思想我感觉就是选一个pivot,然后将待排序数列通过与pivot比较分为 ...
分类:
编程语言 时间:
2016-11-30 14:29:49
阅读次数:
223
01背包 有件物品和一个容量为的背包.第件物品体积为,价值为. 求背包最大价值. 表示前种物品体积为的最大价值, . 时间复杂度. 优化空间复杂度 表示体积为的最大价值, (从大到小枚举). 多重背包 有件物品和一个容量为的背包。第种物品最多有件可用,体积为,价值为.求背包最大价值. 表示前种物品体... ...
分类:
其他好文 时间:
2016-11-27 16:48:21
阅读次数:
100
归并排序的属性 时间复杂度 O(n log n)空间复杂度 O(n)稳定性 稳定发明者 约翰·冯·诺伊曼 (就是那个计算机冯·诺伊曼体系的人) 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 归并排序是建立在归并操作上 ...
分类:
编程语言 时间:
2016-11-27 07:02:27
阅读次数:
254
Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length. Do not allocate extra space fo ...
分类:
其他好文 时间:
2016-11-26 17:44:03
阅读次数:
147