#426. CSP-J模拟套题1-23
CSP-J模拟套题1-23
- (阅读程序)
#include <iostream>
using namespace std;
int a[10005],d[10005];
int ans;
void merge_sort(int l,int r){
if(l>=r) return;
int mid=(l+r)/2;
int i=l;
int p=l,q=mid+1;
merge_sort(l,mid);
merge_sort(mid+1,r);
while(p<=mid||q<=r){
if(q>r||(p<=mid&&a[p]<=a[q])){ //第13行
b[i]=a[p]; i++; p++;
} else {
b[i]=a[q]; i++; q++;
ans+=mid+1-p;
}
}
for(i=l;i<=r;i++) a[i]=b[i];
}
int main()
{
int n; ans=0;
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
merge_sort(1,n);
cout<<ans<<endl;
return 0;
}
(判断题)
将程序第 13 行条件中的 “a[p]<=a[q]” 改为 “a[p]<a[q]”,不会影响最终结果。( )
{{ select(1) }}
- 对
- 错
(选择题)
(2 分)该程序的时间复杂度为( )
{{ select(2) }}
- O(log2n)
- O(n)
- O(nlog2n)
- O(n2)
输入:
6
3 1 6 5 2 4
输出( )
{{ select(3) }}
- 6
- 7
- 8
- 9
输入:
55
1 1 2 1 2 3 1 2 3 4 ... 1 2 3 4 5 6 7 8 9 10
输出( )
{{ select(4) }}
- 330
- 335
- 340
- 345
相关
在下列比赛中: