
算法
duanjinlong、
这个作者很懒,什么都没留下…
展开
-
常用的排序算法及其适用场景
1.介绍常用的排序算法主要有冒泡排序,选择排序,插入排序,希尔排序,堆排序,归并排序,快速排序,桶排序等。2.稳定性稳定的排序算法:冒泡排序,插入排序;不稳定的排序算法:选择排序,希尔排序,堆排序,归并排序,快速排序。3.排序算法的实现3.1冒泡排序冒泡排序的时间复杂度为O(n*n),空间复杂度为O(1),在数据有序的时候时间复杂度可以达到O(n)。适用的情...转载 2020-04-15 19:31:25 · 3204 阅读 · 3 评论 -
10亿数据中取最大的100个数据
思路1:利用堆排序实现(1)取前m个元素(例如m=100),建立一个小顶堆。保持一个小顶堆得性质的步骤,运行时间为O(lgm);建立一个小顶堆运行时间为m*O(lgm)=O(m lgm);(2)顺序读取后续元素,直到结束。每次读取一个元素,如果该元素比堆顶元素小,直接丢弃。如果大于堆顶元素,则用该元素替换堆顶元素,然后保持最小堆性质。最坏情况是每次都需要替换掉堆顶的最小元素,因此需要维护堆的代...转载 2020-03-31 09:35:06 · 652 阅读 · 0 评论