
排序
Demoo.
来记录不会的题啦
展开
-
拓扑序列,拓扑排序
定义:对于图中的每条边 (x,y),x 在 A 中都出现在 y 之前,则称 A 是该图的一个拓扑序列 可以证明,任意一个有向无环图都存在一个拓扑序列,有环的话不能构成拓扑序列 宽搜的一种 入度为0的话可以用来做起始点,所以先把入度为0的点入队,当队列不空的时候取出队头t,枚举t的所有出边,t->j,然后删除t->j的这条边,j的入度--,当j的入度为0时加入队列 ...原创 2022-04-29 13:00:25 · 925 阅读 · 0 评论 -
1416: 大小关系(拓扑排序)
当我们知道一组大小关系之后,可判断所有关系是否都能成立,即关系间没有矛盾。例如:A<B,A<C,B<C通过这组关系我们可以得到A<B<C,所有关系都成立,没有矛盾。若A<B,B<C,C<A通过前两个关系我们得到A<B<C,这个关系与C<A矛盾,所有关系不能同时成立。现在我们知道m个关系,请判断这m个关系是否能成立,成立输出“YES”,否则输出“NO”。 输入 多组数据,每组数据如下: 第一...原创 2022-04-29 12:52:51 · 547 阅读 · 0 评论 -
插入排序还是归并排序
根据维基百科的定义: 插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列。每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置。如此迭代直到全部元素有序。 归并排序进行如下迭代操作:首先将原始序列看成 N 个只包含 1 个元素的有序子序列,然后每次迭代归并两个相邻的有序子序列,直到最后只剩下 1 个有序的序列。 现给定原始序列和由某排序算法产生的中间序列,请你判断该算法究竟是哪种排序算法? 输入格式: 输入在第一行给出正整数 N (≤100);随后一行给出原始序列的 N原创 2022-04-21 21:50:42 · 1008 阅读 · 0 评论 -
插入排序(c++)
插入排序就是按顺序一个接一个的拿出一个数组里顺序不对的元素,然后把他放到正确的位置,我们可以用一个指针i来扫描数组a,如果a[i]<a[i-1]的话是正确的顺序,我们跳过,如果a[i]>a[i-1]说明a[i-1]是异常的元素(比前面的数小,我们要的顺序应该是递增的顺序),然后我们就把这个元素的值和下标拿出来,另x等于他的值,idx等于他的下标,用指针j来从异常的元素的下标idx来往他前面找,如果找到比x小的数就让他的下一个位置等于x,如果他比x大的话我们就让他后面那个数等于他(把大的数往后移动原创 2022-04-21 20:14:10 · 1110 阅读 · 0 评论