本文實例講述了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程序算法設計的學習有所幫助。
新聞熱點
疑難解答
圖片精選