C语言实现输入一个字符串后打印出该字符串中字符的所有排列
更新时间:2014年09月16日 16:39:42 投稿:shichen2014
这篇文章主要介绍了C语言实现输入一个字符串后打印出该字符串中字符的所有排列的方法,是数学中非常实用的排列算法,需要的朋友可以参考下
本文实例讲述了C语言实现输入一个字符串后打印出该字符串中字符的所有排列的方法,属于数学里的排列问题。是一个很实用的算法技巧。分享给大家供大家参考。具体实现方法如下:
例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。
C语言实现代码如下:
/* * Copyright (c) 2011 alexingcool. All Rights Reserved. */ #include <iostream> #include <algorithm> using namespace std; char array[] = {'a', 'b', 'c'}; const int size = sizeof array / sizeof *array; void Perm(char *array, int pos, int last) { if (pos == last) { copy(array, array + size, ostream_iterator<char>(cout, "")); cout << endl; } else { for(int i = pos; i <= last; i++) { swap(array[i], array[pos]); Perm(array, pos + 1, last); swap(array[i], array[pos]); } } } void main() { Perm(array, 0, 2); }
希望本文所述实例对大家C程序算法设计的学习有所帮助。
相关文章
C语言中pthread_exit和pehread_join的使用
pthread_exit用于强制退出一个线程,pthread_join用于阻塞等待线程退出,获取线程退出状态,本文主要介绍了C语言中pthread_exit和pehread_join函数的使用,具有一定的参考价值,感兴趣的可以了解一下2024-02-02C++11 中的std::function和std::bind详解
这篇文章主要介绍了C++ 11 std::function和std::bind,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2021-10-10C++ 中使用lambda代替 unique_ptr 的Deleter的方法
这篇文章主要介绍了C++ 中使用lambda代替 unique_ptr 的Deleter的方法,需要的朋友可以参考下2017-04-04
最新评论