本题满足归并排序的要求(即使元素大小关系不具传递性)
可以用std::stable_sort
实现
code:
class Solution {
public:
vector<int> specialSort(int N) {
vector<int>v;
for(int i=1;i<=N;++i)v.push_back(i);
stable_sort(v.begin(),v.end(),compare);
return v;
}
};
请问这题题意是啥啊
枯了
说实话,这个还是有点bug,即使用普通stl快排也能过,由python获取到计算询问次数的是Num,存输入数组的是num,所以有两种策略
第一种:直接使用num数组,询问次数0
第二种:每次compare时将Num归零
我使用了第二种
代码:
tql
有佬能解释一下题意吗?不理解啊
666
666
有没有佬解释下
归并排序的要求(即使元素大小关系不具传递性)
通常情况下,元素的大小关系应该具有传递性,即如果a < b,b < c,那么a < c。但是,在归并排序中,如果元素大小关系具有传递性,就不能保证归并排序的稳定性。
归并排序的稳定性指的是,如果序列中有两个元素a和b,它们的值相等,但是在原序列中a出现在b的前面,那么在排序后的序列中,a仍然应该出现在b的前面。如果元素大小关系具有传递性,那么在合并两个有序序列的过程中,如果出现了大小相等的元素,那么它们的相对位置可能会发生变化,从而破坏了归并排序的稳定性。
因此,为了保证归并排序的稳定性,需要要求元素大小关系不具有传递性。这通常是通过在比较两个元素的大小时,如果它们的值相等,则将左边的元素视为小于右边的元素来实现的。这样做可以保证相等元素的相对位置不会改变。
阿拉伯数字之间的排序也是有传递性的啊,那按你这么说用归并排序 去排序数字的话就没有稳定性了吗?
66666
66666
现在不行 了
还是可以ac啊
666
666
nt
Orz%%%
nb
三连了,这次一定!
$nb$
666666
66666666
666
!这也太行了