打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VC 常用快捷键

给出一个字符串“ABCDEF”,输出它的全排列,这是一个基础的数学问题,目前已知的比较好的算法是基于交换的。

inline void swap(char &a,char &b){ char t=a; a=b; b=t;}void Perm(string arr,int n,int k=0)//一共n个元素,现在排到第k个了{ if(k==n)/*所有元素都已经排完,输出结果*/ { for(int i=0; i<n; i) cout<<arr[i]; cout<<endl; } else { for(int i=k; i<n; i)/*从自己开始,自己与自己以及后面的元素进行交换*/ { swap(arr[k],arr[i]); Perm(arr,n,k 1); swap(arr[k],arr[i]); } }}

算法的时间复杂度是O(n!)

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Java实现快速排序的基本代码
【算法千题案例】每日LeetCode打卡——68.反转字符串中的元音字母
希尔排序算法的C语言实现示例
知识点总结之排序算法
插入、冒泡、归并、选择、快速排序算法以及二分、三分查找算法
关于用 Go 实现堆和堆操作,可能是最通俗易懂的讲解了
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服