【演算法】遞迴實現全排列
具體參考:
//全排列的遞迴實現
#include <stdio.h>
#include <string.h>
void Swap(char *a, char *b)
{
char t = *a;
*a = *b;
*b = t;
}
//
void AllRange(char *str, int first, int last)
{
int i;
if (first == last)
{
static int count = 1;
printf("第%d個排列\t%s\n", count++, str);
}
else
{
for (i = first; i <= last; i++) //第k個數分別與它後面的數字交換就能得到新的排列
{
Swap(str + first, str + i);
AllRange(str, first + 1, last);
Swap(str + first, str + i);
}
}
}
int main()
{
char str[] = "abc";
printf("%s的全排列如下:\n", str);
AllRange(str, 0, strlen(str)-1);
return 0;
}
相關文章
- 遞迴演算法實踐---實現排列組合遞迴演算法
- 遞迴解決全排列問題遞迴
- php對陣列進行全排列的非遞迴演算法PHP陣列遞迴演算法
- 全排列演算法的JS實現演算法JS
- Java實現全排列、組合演算法Java演算法
- Java實現-全排列Java
- 字串全排列 java實現字串Java
- 全排列演算法演算法
- 【演算法拾遺】二分查詢遞迴非遞迴實現演算法遞迴
- 二十、快速排序演算法——JAVA實現(遞迴)排序演算法Java遞迴
- 二十一、氣泡排序演算法——JAVA實現(遞迴與非遞迴)排序演算法Java遞迴
- 【Algorithm】全排列演算法Go演算法
- 實現自然數N的全排列
- 從基礎講全排列(Java實現)Java
- 遞迴實現原則遞迴
- strcmp的遞迴實現遞迴
- 兩種遞迴方式實現迴文字遞迴
- 全排列及相關擴充套件演算法(二)——求字典序下一組排列及全排列演算法套件演算法
- [演算法]全排列類問題演算法
- 遞迴演算法遞迴演算法
- 前端演算法題:JS遞迴實現楊輝三角前端演算法JS遞迴
- 演算法小專欄:遞迴與尾遞迴演算法遞迴
- 前端電商 sku 的全排列演算法前端演算法
- 遞迴演算法轉換為非遞迴演算法的技巧遞迴演算法
- python-動態規劃的遞迴、非遞迴實現Python動態規劃遞迴
- 遞迴和非遞迴分別實現求n的階乘遞迴
- 斐波那契數列的遞迴和非遞迴實現遞迴
- oracle中的遞迴sql查詢 connect by prior實現遞迴Oracle遞迴SQL
- 原:八皇后問題的遞迴和非遞迴Java實現遞迴Java
- 遞迴演算法經典例項小結(C#實現)遞迴演算法C#
- 【演算法】遞迴演算法演算法遞迴
- 尾遞迴實現深複製遞迴
- 用 Promise + 遞迴實現灌酒動畫Promise遞迴動畫
- C#實現FFT(遞迴法)C#FFT遞迴
- 遞迴實現指數型列舉遞迴
- 如何遞迴實現陣列求和遞迴陣列
- 遞迴實現漢諾塔問題遞迴
- c#遞迴實現 階乘C#遞迴