题目描述
blablabla
样例
#include<iostream>
using namespace std;
int num[100010], temp[100010];
void merge(int l, int r){
if(l>=r) return;
int mid = (l + r) >> 1;
merge(l, mid);
merge(mid+1, r);
int i=0 , j = l, k = mid+1;
for(; j<=mid&&k <= r ; ){
if(num[j]<num[k]) {
temp[i] = num[j];
i++;
j++;
}
else{
temp[i] = num[k];
i++;
k++;
}
}
while(j<=mid){
temp[i] = num[j];
i++;
j++;
}
while(k<=r){
temp[i] = num[k];
i++;
k++;
}
for(int i= l ,j = 0; i<=r ; i++,j++) num[i] = temp[j];
}
int main(){
int n;
cin >>n;
for(int i = 0;i<n;i++) cin >> num[i];
merge(0, n-1);
for(int i=0;i<n;i++) cout << num[i] << " ";
return 0;
}
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla