![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 78
数据结构与算法学习笔记。
EleganceCoding
这个作者很懒,什么都没留下…
展开
-
归并排序分析(递归 附代码)
归并排序属于分治法思想,归并排序完全遵循分治模式。直观上其操作如下:分解:分解待排序的n个元素成各具n/2个元素的两个子序列。解决:使用归并排序递归地排序两个子序列。合并:合并两个已排序的子序列以产生已排序的数组。核心函数有两个,merge(A,p,q,r):将已经有序的序列 A[p…q]和A[q+1,r] 合并为一个有序序列。#include <iostream>#include <vector>#include <climits>using nam原创 2021-08-29 00:40:17 · 232 阅读 · 0 评论 -
重新认识快速排序,学会递归时间复杂度计算
快速排序使用分治法实现,即一个一个复杂的问题分解为一系列容易解决的小问题,最终得到问题的解。1、算法步骤快速排序的三步分治过程:例如对 A[p…r] 进行快速排序分解:数组 A[p…r] 被划分为两个(可能为空)子数组 A[p…q-1] 和 A[p+1…r],使得A[p…q-1] 中的每一个元素都小于 A[q],而 A[q] 也小于等于 A[q+1…r]中的每个元素。其中,计算下标 q 也是划分过程的一部分。解决:通过递归调用快速排序,对子数组A[p…q-1] 和 A[p+1…r] 进行排序。原创 2021-08-28 11:01:41 · 2932 阅读 · 0 评论 -
《算法导论》算法分析 5种渐近记号 Θ O o Ω ω
当输入规模足够大,使得运行时间只与增长量级有关时,需要研究算法的渐近效率。也就是,当输入规模无限增加时,在极限中,算法的运行时间如何随着输入规模的变大而增加。本文中所用插图来自《算法导论》。不同的记号从不同的方面来刻画一个算法的运行效率。将插入排序的最坏运行时间刻画为下式:f(n) = an2+bn+c,其中 a,b,c为常量,n为输入规模。下面针对插入排序最坏运行时间f(n) 来展开讨论根据与 f(n) 的大小关系,可分为 “==”, “>=” “>” “<=” “<” 共5原创 2021-08-27 21:50:17 · 2880 阅读 · 0 评论 -
卖萌型选手题解(二分函数的使用)
鸡尾酒在一场cf的div2比赛中被血虐,一道简单大模拟竟然一个半小时都没AC,认清自己的实力之后他选择做一名卖萌型选手。有一天鸡尾酒遇到了一个炒鸡喜欢的小姐姐,喜欢就要行动,藏着掖着是没有结果的!所以他决定通过自己最擅长的方式——卖萌,来获得小姐姐的芳心。赤耳对鸡尾酒说:我也会嘤嘤嘤可是还是单身,卖萌不一定有用吧?鸡尾酒说:没有卖萌解决不了的问题,如果有,那说明你表现的还不够萌!而且卖萌不是光...原创 2018-12-26 19:46:29 · 160 阅读 · 0 评论