标签:多个 问题 i++ sort highlight char efi type end
分治法的思想就是把一个难以解决的大问题分解成很多个小规模的问题--分而治之,说实话我不明白和dp的区别
/* Name: Copyright: Author: 流照君 Date: 2019/9/13 11:03:29 Description: */ #include <iostream> #include<string> #include <algorithm> #include <vector> #define inf 10010 using namespace std; typedef long long ll; void merge(int arr[],int l,int t,int r) { int a1[inf],b1[inf]; fill(a1,a1+inf,inf); fill(b1,b1+inf,inf);//这是必要的 for(int i=0;i<=t-l;i++) { a1[i]=arr[i+l]; } for(int i=0;i<r-t;i++) { b1[i]=arr[i+t+1]; } int i=0,j=0; for(int k=l;k<r+1;k++) { if(a1[i]<b1[j]) { arr[k]=a1[i]; i++; } else { arr[k]=b1[j]; j++; } } } void mergesort(int *arr,int l,int r) { if(l<r) { int t=(l+r)/2; mergesort(arr,l,t); mergesort(arr,t+1,r); merge(arr,l,t,r); } } int main(int argc, char** argv) { //freopen("in.txt", "r", stdin); //freopen("out.txt", "w", stdout); int n,a[inf]; cin>>n; for(int i=0;i<n;i++) cin>>a[i]; mergesort(a,0,n-1); for(int i=0;i<n;i++) cout<<a[i]<<" "; cout<<endl; return 0; }
标签:多个 问题 i++ sort highlight char efi type end
原文地址:https://www.cnblogs.com/liuzhaojun/p/11516580.html