網(wǎng)站首頁 編程語言 正文
前言
本博文源于最近學(xué)習(xí)的遞歸算法,遞歸中遇到一個問題全排列的問題,我看見回溯特別神奇,特此記錄一下。對比一下深度優(yōu)先搜索與廣度優(yōu)先搜索,個人感覺這里的回溯像是一種遞歸樹中的深度優(yōu)先搜索的算法,他不斷構(gòu)造往下延伸的深度,使其達到完全編列
算法思想
比如3拿來舉例,按照一般正常的話就是應(yīng)該,
123 132 213 231 312 321
六種,先造出一個hashtable數(shù)組讓其存儲在各位是否使用,然后創(chuàng)建path的p數(shù)組將數(shù)字進行選填,遞歸樹我花在文章下面。
完整代碼
#include<cstdio> const int maxn = 11; //P 為當前排列 HashTable記錄整個數(shù)x是否已經(jīng)在P中 int n,P[maxn],hashTable[maxn] = {false}; //當前處理排列的第index位置 void generateP(int index) { if(index == n+1){ for(int i=1;i<=n;i++){ printf("%d",P[i]); } printf("\n"); return ; } for(int x = 1;x<=n;x++) { if(hashTable[x] == false) { P[index] = x; hashTable[x] = true; generateP(index + 1); hashTable[x] = false; } } } int main() { n = 3; generateP(1); return 0; }
實驗效果
總結(jié)
原文鏈接:https://blog.csdn.net/m0_37149062/article/details/122469149
相關(guān)推薦
- 2022-08-25 Python中如何使用Matplotlib庫繪制圖形_python
- 2022-09-13 centos環(huán)境下nginx高可用集群的搭建指南_nginx
- 2023-01-18 解讀Opencv中Filter2D函數(shù)的補全方式_python
- 2023-03-01 MATLAB?plot函數(shù)功能及用法詳解_其它綜合
- 2023-04-24 FFmpeg實戰(zhàn)之分離出PCM數(shù)據(jù)_C 語言
- 2022-04-09 python去掉空格的一些常用方式_python
- 2023-05-31 python常用函數(shù)random()函數(shù)詳解_python
- 2022-11-09 React的特征單向數(shù)據(jù)流學(xué)習(xí)_React
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支