https://blog.51cto.com/u_15077556/3984082
https://www.jianshu.com/p/585f8882bbfb
插入和查找的时间复杂度都是为O(1)
指针$i$,指针$j$,序列长度为$n$
1 $O(n^2)$
$i$总共遍历$n$,$j$总共遍历$n^2$
1 $O(n )$
$i$总共遍历$n$,$j$总共遍历$n$
快排
O(n)
每排一次,就知道基准的位置,就可以得出TopK是在基准左边部分还是右边部分,因此不需要全部排序
堆排
O(k+nlog(k))
1 |
|
核心思想:取一个数作为基准,比这个数小的放在左边,大的放在右边,然后左边重复,右边重复。
基准元素,一般来说选取有几种方法
实现方式:一般递归+双指针
伪代码
1 | 1:首先取序列第一个元素为基准元素pivot=R[low]。i=low,j=high。 |
时间复杂度(0nlogn)
参考:
https://blog.csdn.net/m0_37568814/article/details/81288756
https://zhuanlan.zhihu.com/p/138523723
数据结构包括:逻辑结构,存储结构,数据运算
数据的逻辑结构主要分为线性结构和非线性结构。
数据的存储结构,表示数据元素之间的逻辑关系,一种数据结构的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有: