本文實(shí)例講述了C語(yǔ)言實(shí)現(xiàn)輸入一個(gè)字符串后打印出該字符串中字符的所有排列的方法,屬于數(shù)學(xué)里的排列問(wèn)題。是一個(gè)很實(shí)用的算法技巧。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
例如輸入字符串a(chǎn)bc,則輸出由字符a、b、c所能排列出來(lái)的所有字符串a(chǎn)bc、acb、bac、bca、cab和cba。
C語(yǔ)言實(shí)現(xiàn)代碼如下:
/* * 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);}希望本文所述實(shí)例對(duì)大家C程序算法設(shè)計(jì)的學(xué)習(xí)有所幫助。
新聞熱點(diǎn)
疑難解答
圖片精選