From ae3f0aecbbc23d89ee6b84ac455bdf29711a48a7 Mon Sep 17 00:00:00 2001 From: e2hang <2099307493@qq.com> Date: Fri, 18 Jul 2025 09:32:21 +0100 Subject: [PATCH] Recursion Final --- Recursion/P27_All_Sorted | Bin 0 -> 71448 bytes Recursion/P27_All_Sorted.cpp | 35 ++++++++++++++++++++++++++++++--- Recursion/P29_25_SubsetGen | Bin 71512 -> 71616 bytes Recursion/P29_25_SubsetGen.cpp | 20 +++++++++++-------- 4 files changed, 44 insertions(+), 11 deletions(-) create mode 100755 Recursion/P27_All_Sorted diff --git a/Recursion/P27_All_Sorted b/Recursion/P27_All_Sorted new file mode 100755 index 0000000000000000000000000000000000000000..b6b02ee0dce87eba0243d01df7206664a812539f GIT binary patch literal 71448 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 b-9t36VYy%SrQamY;(xeSdqx5Qfg=15Qt}ms literal 0 HcmV?d00001 diff --git a/Recursion/P27_All_Sorted.cpp b/Recursion/P27_All_Sorted.cpp index 804415f..1b56efd 100644 --- a/Recursion/P27_All_Sorted.cpp +++ b/Recursion/P27_All_Sorted.cpp @@ -1,9 +1,38 @@ //For a,b,c we have sort abc acb bac bca cab cba(6 kinds) This Program is to sort all of the kinds #include - using namespace std; +// 递减n叉树 +// 可能需要包展开,这里先不写,先以3个为主 +template +T* sort(int n, int l, T* tmp, bool* used, T* arr){ + if(n == l){ + cout << "["; + for(int i = 0;i < n; i++){ + cout << tmp[i] <<" "; + } + cout << "]" << endl; + } + + for(int i = 0;i < l; i++){ + if(used[i] == false){ + tmp[n] = arr[i]; + used[i] = true; + sort(n + 1, l, tmp, used, arr); + used[i] = false; //是否可以删除?不可以,回溯本节点要用 + } + } +} + int main() { - + int n; + cin >> n; + int* tmp = new int[n]; + int* arr = new int[n]; + for(int i = 0;i < n; i++){ + cin >> arr[i]; + } + bool* used = new bool[n]; + sort(0, n, tmp, used, arr); return 0; -} \ No newline at end of file +} diff --git a/Recursion/P29_25_SubsetGen b/Recursion/P29_25_SubsetGen index e5b953a23e72c6c5ae26a82f03520355060ca270..7b6b31eb40657dd3b55ab5b3788b0058a70e20fb 100755 GIT binary patch delta 3306 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 diff --git a/Recursion/P29_25_SubsetGen.cpp b/Recursion/P29_25_SubsetGen.cpp index 801086c..afb2717 100644 --- a/Recursion/P29_25_SubsetGen.cpp +++ b/Recursion/P29_25_SubsetGen.cpp @@ -6,21 +6,24 @@ using namespace std; //n: 本次递归数组长度 //l: 给定数组长度 template -T* sub(int m ,int n, int l, T* x){ - T* tmp = new T [l]; - if(m == l){ - for(int i = 0; i < l; i++){ - cout << tmp[i] << endl; +T* sub(int m ,int n, int l, T* x, T* tmp){ + if(m == l) + { + + cout << "[ "; + for(int i = 0; i < n; i++){ + cout << tmp[i] << " "; } + cout << " ]" << endl; return tmp; } //不选a[i] - sub(m + 1, n, l, x); + sub(m + 1, n, l, x, tmp); //选a[i] tmp[n] = x[m]; - sub(m + 1, n + 1, l, x); + sub(m + 1, n + 1, l, x, tmp); } @@ -34,8 +37,9 @@ int main(){ for(int i = 0; i < num ; i++){ p[i] = new double[n]; } + double* tmp = new double[n]; double arr[] = {1, 2, 3, 4, 5}; - sub(0, 0, 5, arr); + sub(0, 0, 5, arr, tmp); return 0; }