#include<iostream>
using namespace std;
void Merge(int arr[] ,int left ,int mid ,int right ,int temp[]){
int i=left;
int j = mid+1;
int t = 0;
while(i<=mid&&j<=right){
temp[t++]=arr[i]<arr[j]?arr[i++]:arr[j++];
}
while(i<=mid){
temp[t++]=arr[i++];
}
while(j<=right){
temp[t++]=arr[j++];
}
t=0;
while(left<=right){
arr[left++]=temp[t++];
}
}
void MSort(int arr[] ,int left,int right, int temp[]){
if(left<right){
int mid = left+(right-left)/2;
MSort(arr,left,mid,temp);
MSort(arr,mid+1,right,temp);
Merge(arr,left,mid,right,temp);
}
}
void printArray(int arr[] ,int n)
{
int i;
for(i = 1; i <= n; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
int main(){
// int n;
// cin>>n;
// int arr[n+1];
// for(int i=1;i<=n;i++){
// cin>>arr[i];
// }
int arr[] = {-1,2,5,6,4,3,7,9,8,1,0};
int temp[11];
int n = 10;
MSort(arr,1,n,temp);
printArray(arr,n);
return 0;
}
01-28
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交