您的位置:首页 > 其它

生成全排序算法

2015-10-25 21:11 316 查看
记录,主要是明白递归的过程。

#include <iostream>

using namespace std;

//int out1 = 0;
template <typename T>
inline void swap(T *array, unsigned int i, unsigned int j)
{
T t = array[i];
array[i] = array[j];
array[j] = t;
}

/*
* 递归输出序列的全排列
*/
void FullArray(char *array, size_t array_size, unsigned int index)
{
if(index >= array_size)
{
for(unsigned int i = 0; i < array_size; ++i)
{
cout << array[i] << ' ';
}
cout << '\n';
return;
}

for(unsigned int i = index; i < array_size; ++i)
{
/*out1++;
cout << index << out1 << endl;*/
swap(array, i, index);
FullArray(array, array_size, index + 1);
swap(array, i, index);
}
}

int main()
{
char array[] = "abcd";
int index = 0, arraysize = 4;
FullArray(array, arraysize , index);

return 0;
}结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  全排列 递归 算法