题目描述
blablabla
样例
blablabla
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
```using namespace std;
void merge(int num[], int str1, int end1, int str2, int end2){
int len1 = end1 - str1 + 1;
int len2 = end2 - str2 + 1;
int arr_left[len1], arr_right[len2];
int cnt = str1;
int left = 0,right = 0;
for(int i = 0;i < len1;i)arr_left[i] = num[str1+i];
for(int i = 0;i < len2;i)arr_right[i] = num[str2+i];
while(left < len1&&right < len2){
if(arr_left[left] < arr_right[right]){
num[cnt] = arr_left[left];
left;
}
else{
num[cnt] = arr_right[right];
right;
}
cnt;
}
while(left < len1){//当left >= len1时,说明左边数组的元素已经全部排完
num[cnt] = arr_left[left];
left;
cnt;
}
while(right < len2){//同理
num[cnt] = arr_right[right];
right;
cnt++;
}
}
void mergesort(int num[], int str, int end){
if(str < end){
int mid = str + (end-str)/2;
//递归调用
mergesort(num, str, mid);
mergesort(num, mid+1, end);
//合并
merge(num, str, mid, mid+1, end);
}
}
int main(){
int n;
cin>>n;
int num[n];
for(int i = 0;i < n;i)cin>>num[i];
mergesort(num,0,n-1);
for(int i = 0;i < n;i)cout<<num[i]<<’ ‘;
return 0;
}
/30
128 294 133 295 175 8 232 248 241 164 11 60 238 133 291 116 6 67 98 67 196 260 181 160 83 160 90 153 233 216/
作者:计算机萌新
链接:https://www.acwing.com/solution/content/43839/
来源:AcWing
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
----------
### 算法2
##### (暴力枚举) $O(n^2)$
blablabla
#### 时间复杂度
#### 参考文献
#### C++ 代码
blablabla
```