详细dfs解题
2024-08-28 22:50:29
发布于:广东
3阅读
0回复
0点赞
//整个题目其实就是输出了归并的流程
#include<iostream>
using namespace std;
int a[101],n;
void dfs(int l,int r){
if(l>=r) return;//边界
int mid=(l+r)/2;//分界点
cout<<"[";
for(int i=l;i<=mid;i++) cout<<a[i]<<" ";//输出左半边
cout<<"],[";
for(int i=mid+1;i<=r;i++) cout<<a[i]<<" ";//输出右半边
cout<<"]"<<endl;
dfs(l,mid);//处理左半边
dfs(mid+1,r);//处理右半边
}
int main(){
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
dfs(1,n);//开始
return 0;
}
这里空空如也
有帮助,赞一个