#include<bits/stdc++.h>
using namespace std;
const int maxn=500000,INF=0x3f3f3f3f;int L[maxn/2+2],R[maxn/2+2];
void unknown (int al],int n,int left,int mid,int right){
int nl mid-left,n2-right-mid;
for(int i=0;i<nl;i++)
L[i]-a[ left+i];
for(int i=0;i<n2;i++)
R[i] a[mid+i];
L[ n1]-R{ n2]-INF;
int i-0,j-0;
for(int k left;k<right;k++){
if(L[±]<-R[ j])
a[k]-L[i++];
else
a[k]-R[j++];
void unknownsort(int a[ ],int n,int left,int right){
if(left+l<right){
int mid=(left+right)/2;
unknownsort(a,n,left,mid)
iunknownsort(a,n,mid,right)
unknown(a,n,left,mid,right);
int main(){
int a[maxn],n;
cin>>n;
cin>>a[i];
for(int i=0;i<n;i++)unknownsort(a,n,0,n);
for(int i=0;i<n;i++){
if(i) cout<<"";
cout<<a[i];
cout<<endl;
return 0;
将第 13 行的“<”改为“<=”不会改变运行结果
将第 21 行的“<”改为“<=”不会改变运行结果
此类排序方法是高效的,但是不稳定
将第4行的2个“+2"都去掉不会改变运行结果。
此题是哪种排序?
选择排序
桶排序
归并排序
堆排序
此题用到了()思想
动态规划
分治
冒泡
贪心
发表评论