这三种排序算法不是基于比较的排序。时间复杂度O(N),额外空间复杂度O(N),稳定的 基于桶,一种数据出现的频率,一个萝卜一个坑,先扔入桶中,在按照桶的大小倒出元素。 非基于比较的排序 n个数,准备n+1个桶。 最小值a和最大值b,最小值放在a号桶中,最大值放在b桶中。每个桶的范围(b-a)/(n+ ...
分类:
编程语言 时间:
2019-10-03 22:00:21
阅读次数:
104
合归并排序需要 ,先排序,再 合并。复杂度为O(nlogn);空间复杂度为O(N)。需要额外的数组,保存复制已排序的数组到原数组中。 ...
分类:
编程语言 时间:
2019-10-03 18:10:52
阅读次数:
90
Leetcode Tree Depth-first Search Given preorder and inorder traversal of a tree, construct... ...
分类:
其他好文 时间:
2019-10-02 21:08:04
阅读次数:
100
 ``` # 空间复杂度是指本算法是不是需要开辟一块新内存,如果需要开辟新内存则是O(n)否则是O(1)。 # 如果是... ...
分类:
编程语言 时间:
2019-09-30 20:00:19
阅读次数:
61
快排的时间复杂度O(nlogn)-O(N^2),空间复杂度为O(long2n)-O(N) 传统的快排与优化的快排的优化之处在于,传统的左边每次都保存着小于等于target即x的数值,包含着x,下次对左边的再次进行快排,还是要比较x, 优化的把 等于x放在中间,减少了重复元素的比较次数。 当origi ...
分类:
编程语言 时间:
2019-09-29 11:18:31
阅读次数:
101
·1.Binary Tree Preorder Traversal Morris先序遍历,时间复杂度O(n),空间复杂度O(1) 步骤: 1.如果当前节点的左孩子为空,则输出当前节点并将其右孩子作为当前节点。 2.如果当前节点的左孩子不为空,在当前节点的左子树中找到当前节点在中序遍历下的前驱节点。 ...
分类:
其他好文 时间:
2019-09-27 01:23:33
阅读次数:
96
1.2 空间复杂度S(n) ——根据算法写成的程序在执行时 占用存储单元的长度。这个长度往往与输入数据的 规模有关。空间复杂度过高的算法可能导致使用的 内存超限,造成程序非正常中断。 时间复杂度T(n) ——根据算法写成的程序在执行时 耗费时间的长度。这个长度往往也与输入数据的规 模有关。时间复杂度 ...
分类:
其他好文 时间:
2019-09-22 21:52:17
阅读次数:
113
1.实践题目 PTA算法 7-1 二分查找 2.问题描述 3.算法描述 4.算法时间及空间复杂度分析 (1)时间复杂度: 每经过一次比较,数组a的大小就变为原来的一半,则有T(n) = O(1) + T(n/2) = O(logn) (2)空间复杂度: 因为定义的变量a[]所分配的空间大小不随n和x ...
分类:
编程语言 时间:
2019-09-22 21:46:39
阅读次数:
86
题面 首先便是想到了Floyd的暴力方法,状态转移方程也不难推出:w[i][j]=max(w[i][j], min(w[i][k],w[k][j]));但是n^3n3次方时间复杂度和n^2n2的空间复杂度是显然不可取的。 于是我们思考,可以发现有一些权值较小的边是不会被走过的。正如样例中的第三条边, ...
分类:
其他好文 时间:
2019-09-22 15:20:31
阅读次数:
56
Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。 1. Bit-map应用 1)可进行数据的快速查找,判重,删除,一般来说数据范围是int的10倍以下。 2)去重数据而达到压缩数据 2. Bit ...
分类:
编程语言 时间:
2019-09-22 10:25:39
阅读次数:
82