排序算法
文章平均质量分 80
爱寂寞的时光
这个作者很懒,什么都没留下…
展开
-
排序算法总结
排序算法总结目录排序算法总结传统排序算法冒泡排序对数时间排序算法快速排序过程分区朴素快速排序的时间复杂度分析随机化快速排序代码实现例题线性时间排序算法计数排序桶排序传统排序算法传统排序算法其时间复杂度一般为O(n2)O(n^2)O(n2)。原理简单实现简单。冒泡排序时间复杂度额外空间复杂度稳定O(n2)O(n^2)O(n2)O(1)O(1)O(1)Yesfor(int i = n - 1; i > 0; i--) for(int j = 0; j <原创 2021-08-17 18:33:25 · 522 阅读 · 1 评论 -
单调优先队列
单调优先队列单调优先队列不同于普通二叉堆实现的优先队列,其复杂度为O(nlogn)O(n \log n)O(nlogn)预处理,O(1)O(1)O(1)时间取堆顶,O(1)O(1)O(1)时间插入。并且数据必须满足每次插入的数据是单调的。思路我们先对数据进行排序,准备两个队列PPP和QQQ,将排序好的数据放入PPP队列中,然后每次取出都比较一下PPP和QQQ的队首元素,取最小/最大的那个并出队,插入的时候向队列QQQ插入到队尾部,由于每次插入的数据都是单调的,因此我们得到的是两个单调的队列,相当于归原创 2021-08-12 14:00:14 · 101 阅读 · 0 评论 -
排序——快速排序
快速排序过程与归并排序类似,快速排序也运用了分治的思想。分解:将数组A[l…r]A[l \ldots r]A[l…r]分解成两个部分A[l…mid−1]A[l \ldots mid-1]A[l…mid−1]和A[mid+1…r]A[mid+1 \ldots r]A[mid+1…r](全文默认为全闭下标集合)。并且我们要求A[l…mid−1]A[l \ldots mid-1]A[l…mid−1]中的元素,都小于等于A[mid]A[mid]A[mid],A[mid+1…r]A[mid+1 \ldots原创 2021-11-02 01:06:14 · 180 阅读 · 0 评论