目录
一、查找
- 在有序表或者有序表上的顺序查找,其时间复杂度为O(n)。
- 在有序表上二分查找,其最差复杂度为O(log n)。
散列表可以实现常数级时间的查找,完美散列函数作为数据一致性校验,应用很广。
区块链技术是一种去中心化的分布式数据库,通过“工作量证明”机制来维持运行。
二、排序
- 冒泡、选择和插入排序的复杂度是O(n^2)。
- 谢尔排序在插入排序的基础上进行了改进,采用了对递增子表排序的方法,其时间复杂度可以在O(n)和O(n^2)之间。
- 归并排序的时间复杂度是O(n log n),但是归并排序的过程需要额外存储空间。
- 快速排序最好的时间复杂度是O(n log n),也不需要额外的存储空间,但分裂点偏离列表中心的话,最坏的情况会退化到O(n^2)。
排序算法有时候并不存在绝对的优劣,尤其是时间复杂度相同的算法。
要在特定的应用场合取得最高排序性能的话,还有对数据本身进行分析,针对数据的特性来选择相应的排序算法。