非线性时间比较类 1. 交换排序 1.冒泡排序 思想:从前往后扫描,如果相邻两个元素的大小不满足要求,则进行交换。因此,每一轮可以将最大的元素放到最后一位,下一轮扫描时,就无需进行到最后一位了。 时间复杂度:进行两重循环,因此是O(n^2) 空间复杂度:原地排序,无需其他额外的空间,因此是O(1) ...
分类:
编程语言 时间:
2020-03-11 15:46:02
阅读次数:
75
Q:现在有一个整数类型的数组,数组中只有一个元素只出现一次,其余元素都出现两次。你需要找出只出现一次的元素 注意:你需要给出一个线性时间复杂度的算法,你能在不使用额外内存空间的情况下解决这个问题么? A: 这个题目可以参考 https://www.cnblogs.com/xym4869/p/1233 ...
分类:
其他好文 时间:
2020-03-10 19:59:12
阅读次数:
60
[TOC] 简述 KMP 算法,又称模式匹配算法,能够在线性时间内判定字符串 $A[1 N]$ 是否为字符串 $B[1 M]$ 的子串。 对于刚刚接触 KMP 的同学来说,理解起来比较困难,难以理解 $next[]$ 数组的实际意义。 ~~当然你要硬背 KMP 也没人拦着你,因为代码确实就十几行~~ ...
分类:
编程语言 时间:
2020-03-09 13:48:16
阅读次数:
73
力扣第136题 只出现一次的数 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] ...
分类:
其他好文 时间:
2020-03-02 22:33:07
阅读次数:
61
时间复杂度分析 大O表示法 O(1): Constant Complexity 常数复杂度 O(log n): Logarithmic Complexity 对数复杂度 O(n): Linear Complexity 线性时间复杂度 O(n^2): N square Complexity 平方 O( ...
分类:
其他好文 时间:
2020-02-27 01:13:10
阅读次数:
82
BFS 求最小 基迭代,不会爆栈 Flood fill算法: 可以在线性时间复杂度内,找到某个点所在的连通块。 //Home键到行首,End键到行尾 AcWing 1097. 池塘计数 AcWing 1098. 城堡问题 AcWing 1106. 山峰和山谷 最短路模型: 所有边权相等时,可以在线性 ...
分类:
编程语言 时间:
2020-02-24 18:54:18
阅读次数:
149
一道力扣题目 只出现一次的数字: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2 ...
分类:
其他好文 时间:
2020-02-11 11:51:12
阅读次数:
159
O(n),也叫线性时间,这样的算法包括简单查找。O(n * log n),这样的算法包括第4章将介绍的快速排序——一种速度较快的排序算法。O(n^2),这样的算法包括第2章将介绍的选择排序——一种速度较慢的排序算法。O(n!),这样的算法包括接下来将介绍的旅行商问题的解决方案——一种非常慢的算法。 ...
分类:
编程语言 时间:
2020-02-06 01:27:54
阅读次数:
79
只出现一次的数字 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现 两次 。找出那个只出现了一次的元素。 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 多数元素 给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ? ...
分类:
其他好文 时间:
2020-01-23 09:51:12
阅读次数:
66
树状数组是一种有效更新元素并计算前缀和的数据结构。给定一个数组,需要进行上述操作。朴素算法是线性时间复杂度,而树状数组允许在O(logn)的时间内执行这两个操作。 假设原数组为a,与之等价的树状数组为c,有如下关系: $\begin{cases} \ c[x]=\sum_{i=x-lowbit(x) ...
分类:
编程语言 时间:
2020-01-23 09:37:07
阅读次数:
76