概述 十种常见排序算法可以分为两大类: 基础定义 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。 不稳定:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。 时间复杂度:对排序数据的总的操作次数。反映当n变化时,操作次数呈现什么规律。 空间复杂度:是指算法在计算 ...
分类:
编程语言 时间:
2020-01-08 12:29:36
阅读次数:
58
时间复杂度,换句话说,就是它们运行得有多快。但有些时候,我们还得以另一种名为空间复杂度的度量方式,去估计它们会消耗多少内存。 当内存有限时,空间复杂度便会成为选择算法的一个重要的参考因素。比如说,在给小内存的小型设备写程序时,或是处理一些会迅速占满大内存的大数据时都会考虑空间复杂度。 描述空间复杂度 ...
分类:
其他好文 时间:
2020-01-07 16:10:03
阅读次数:
97
原题 在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。 示例 1: 示例 2: 原题url:https://leetcode cn.com/problems/sort list/ 解决 题目很明确,排序,对于时间复杂度和空间复杂度有要求,针对 ,让我想到了 和`快速排序`, ...
分类:
编程语言 时间:
2020-01-05 11:32:53
阅读次数:
115
问题描述 给定一个序列$A_0$、$A_1$、$A_2$、...、$A_{n 1}$,求$A_i+A_{i+1}+...+A_j$的最大值。 解一 暴力枚举左端点$i$和右端点$j$,之后计算$A_i$和$A_j$之间的和,时间复杂度$O(n^3)$,很容易TLE。 解二 输入数据时记录前缀和,预处 ...
分类:
编程语言 时间:
2020-01-01 23:44:15
阅读次数:
84
一、在O(1)的空间复杂度内判断单链表是否有环 "题目描述" 快慢指针:若链表有环,则两指针必在将来某一时刻相遇: 假设环的长度为$L$,快指针距离环的入口距离为$S$,慢指针在入口,则经过$t$时间相遇,有: $S+2t t=nL$,即:$S+t=nL$,又$Snext) { fast = fas ...
分类:
其他好文 时间:
2020-01-01 23:36:42
阅读次数:
67
1.概念 快速排序 快速排序,听这个名字就能想到它排序速度比较快方法,是一种分治思想,现在各种语言中自带的排序库很多使用的都是快速排序。快速排序是一种原地排序,只需要一个很小的栈作为辅助空间,空间复杂度为O(log2n),适合在数据集比较大的时候使用。时间复杂度比较复杂,最好的情况是O(n),最差的 ...
分类:
编程语言 时间:
2020-01-01 13:43:42
阅读次数:
77
目前不断更新中 每种算法的思想以及复杂度都在描述代码上方,算法描述图有时间会补上 template<class T>class sort {public : //插入排序: void InsertSort(T r[], int n) { //思想:将数列分为有序和无序,从前往后逐个增加有序数列个数, ...
分类:
编程语言 时间:
2019-12-28 21:15:51
阅读次数:
95
题目描述 给定一个无序数组arr,其中元素可正、可负、可0。给定一个整数k,求arr所有的子数组中累加和小于或等于k的最长子数组长度 要求 时间复杂度为O(n),空间复杂度为O(n) 示例 输入描述 第一行两个整数N, k。N表示数组长度,k的定义已在题目描述中给出 第二行N个整数表示数组内的数 输 ...
分类:
编程语言 时间:
2019-12-27 13:50:01
阅读次数:
93
一、时间复杂度、空间复杂度 时间复杂度:用来评估算法运行效率的一个东西,用O()来表示 举例时间复杂度计算: print('Hello World') O(1) for i in range(n): #n次循环 print('Hello World') O(n) for i in range(n): ...
分类:
编程语言 时间:
2019-12-24 23:37:16
阅读次数:
94
5.4.1 实例层的融合和匹配 空间复杂度挑战 时间复杂度挑战: 匹配元素对的相似度计算次数(n2) 每次相似度计算时间复杂度(t) 匹配结果质量挑战5.4.2 基于快速相似度计算的实例匹配方法 思想:降低每次相似度计算的时间复杂度,即t 映射过程只能使用简单且速度较快的匹配器,映射线索尽量简单; ...
分类:
其他好文 时间:
2019-12-23 19:16:36
阅读次数:
184