C語言實現(xiàn)輸入一個字符串后打印出該字符串中字符的所有排列
更新時間:2014年09月16日 16:39:42 投稿:shichen2014
這篇文章主要介紹了C語言實現(xiàn)輸入一個字符串后打印出該字符串中字符的所有排列的方法,是數(shù)學(xué)中非常實用的排列算法,需要的朋友可以參考下
本文實例講述了C語言實現(xiàn)輸入一個字符串后打印出該字符串中字符的所有排列的方法,屬于數(shù)學(xué)里的排列問題。是一個很實用的算法技巧。分享給大家供大家參考。具體實現(xiàn)方法如下:
例如輸入字符串a(chǎn)bc,則輸出由字符a、b、c所能排列出來的所有字符串a(chǎn)bc、acb、bac、bca、cab和cba。
C語言實現(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);
}
希望本文所述實例對大家C程序算法設(shè)計的學(xué)習(xí)有所幫助。
相關(guān)文章
C語言動態(tài)與靜態(tài)分別實現(xiàn)通訊錄詳細過程
這篇文章主要為大家介紹了C語言動態(tài)與靜態(tài)分別實現(xiàn)通訊錄,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-02-02
VC++實現(xiàn)View內(nèi)容保存為圖片的方法
這篇文章主要介紹了VC++實現(xiàn)View內(nèi)容保存為圖片的方法,涉及VC++中Bitmap類的save方法相關(guān)使用技巧,需要的朋友可以參考下2016-08-08
詳解c++ atomic原子編程中的Memory Order
在多核編程中,我們使用內(nèi)核對象【如:事件對象(Event)、互斥量對象(Mutex,或互斥體對象)、信號量對象(Semaphore)等】來避免多個線程修改同一個數(shù)據(jù)時產(chǎn)生的競爭條件。本文將詳細介紹c++ atomic原子編程中的Memory Order。2021-06-06

